山本ワールド
Windowsプログラミング
アルゴリズム Vitual C++ 2008/2013によるWin32/Win64 APIレベルのプログラム 基礎 Vitual C++ 2008/2013によるAPIレベルのプログラム(32/64bit) Wix3でインストーラーを作る Visual C++ 2008 Standard Editonによるフォームアプリケーションのプログラム(32/64bit) Vitual C++ 2008 Standard EditonによるAPIレベルのプログラム(32/64bit) Windows 7対応 Visual C++ 2008 ExpressによるAPIレベルのプログラム Visual C++ 2005 ExpressによるAPIレベルのプログラム Visual C++ Versiosn 5 BORLAND C++ Windowsプログラム全般 Excel VBA その他printf系関数の書式指定と動作例
概要
flags(フラグディレクティブ)
フラグ | 説明 |
---|---|
- | 左詰め |
+ | 符号付の場合+又は-を付加 |
# | typeの指定値がo,x,Xの場合0または0x,0Xを付加 |
0 | 最小幅に達するまで0を付加 |
width
flagsも含めた出力できる最小文字数を指定。省略可能
文字列を表示する場合は右寄せとなる。
文字列を表示する場合は右寄せとなる。
.precision(精度指定)
flagsを含めない最大文字数を指定。省略可能
浮動小数点の場合は小数点以下の桁数。
浮動小数点の場合は小数点以下の桁数。
[サイズプリフィックス]type
[サイズリフィックス]type | 説明 | 型 |
---|---|---|
i | 符号付整数 | int |
u | 符号無し整数 | unsigned int |
x又はX | 16進数 | int |
o | 8進数 | int |
e | 浮動小数点 [-]d.ddddde±ddd | double |
f | 浮動小数点 [-]dd.dddd | double |
s | 文字列 | 関数によって異なる TCHAR*,char* ,WCHAR * |
I64i | 64bit符号付整数 | INT64,__int64 |
I64u | 64bit符号無し整数 | UINT64,unsigned __int64 |
I64x | 64bit符号無し整数16進数 | UINT64,unsigned __int64 |
c | 文字 | 関数によって異なる TCHAR,char,WCHAR |
ws | ワイド文字列 | WCHAR* |
動作例
書式指定文字の指定例を以下に示します。
%[flags][width][.precision][サイズプリフィックス]type
[]内は省略可能
表中の□は半角空白1文字を意味する。
%[flags][width][.precision][サイズプリフィックス]type
[]内は省略可能
表中の□は半角空白1文字を意味する。
変数 | 書式文字列 | 出力例 | 備考 |
---|---|---|---|
3.141592653589793 | %06.3f | 03.142 | 小数点以下3桁。全体で6文字にするため先頭に0を付加 |
3.141592653589793 | %.5e | 3.14159e+000 | 小数点以下5桁 |
3.141592653589793 | %.5f | 3.14159 | 小数点以下5桁 |
10 | %.5i | 00010 | 5文字になるように0を付加 |
-10 | %+.5i | -00010 | 5文字になるように0を付加後、符号-を付加 |
10 | %+.5i | +00010 | 5文字になるように0を付加後、符号+を付加 |
10 | %+5i | □□+10 | 符号+を付加後5文字になるように空白を付加 |
-10 | %+5i | □□-10 | 符号-を付加後5文字になるように空白を付加 |
-10 | %+5.5i | -00010 | 5文字になるように0を付加後、符号-を付加 |
0x1234 | %5x | □1234 | 5文字になるように空白を付加して16進数出力 |
0x1234 | %.5x | 01234 | 5文字になるように0を付加して16進数出力 |
0x1234 | %#.5x | 0x01234 | 5文字になるように0を付加後、0xを付加して16進数出力 |
0x1234 | %#5x | 0x1234 | 0xを付加すると5文字以上なのでそのまま16進数出力 |
0x1234 | %#7x | □0x1234 | 0xを付加すると7文字未満なので空白を付加して16進数出力 |
011064 | %#7o | □011064 | 0を付加すると7文字未満なので空白を付加して8進数出力 |
L"漢字" | %10s | □□□□□□□□漢字 | 10文字になるように空白を付加して出力 |
L"漢字" | %-10s | 漢字□□□□□□□□ | 10文字になるように空白を付加して出力 |
"漢字" | %-10s | 漢字□□□□□□ | 10文字になるように空白を付加して出力(マルチバイトなので漢字1文字は2文字として数える) |
0x1234567812345678 | %I64u | 1311768465173141112 | 64bit符号無し整数を出力 |
0x1234567812345678 | %I64x | 1234567812345678 | 64bit整数を16進数で出力 |
L"漢字" | %ws | 漢字 | ワイド文字列をprintfで出力 |
Copyright (C) 2012 山本ワールド All Rights Reserved.