標準化された入出力関数の%記号の後の内容は常に謎でした。ここで合計してみてください。2つの機能に配置できるパーツは次のとおりです。
printf()%[flags] [width] [。prec] [hlL] type
scanf()%[flags] type
scanf()はより単純です。
printf()
1フラグ
国旗 |
意味 |
- |
左揃え |
+ |
前面に記号を付けます(+または-) |
(スペース) |
正の数は空白のまま |
0 |
0パディング |
# |
16進数と8進数の前にそれぞれ識別子0x、0を追加します |
2幅
幅 |
意味 |
数 |
最小文字数(出力全体の長さ) |
* |
次のパラメータは文字数です |
。数 |
小数点以下の桁数 |
。* |
次のパラメータは小数点以下の桁数です |
3.pre
.pre |
意味 |
。数 |
小数点以下の桁数 |
。* |
次のパラメータは小数点以下の桁数です |
printf("%- 6d\n",123);
123
printf("%+06d\n",-123);
-00123
printf("%+08.2f\n",123.1);
+0123.10
printf("%#+08.2x\n",12);
0x0c
追加しないでください-デフォルトは右揃えです。明らかに、左揃えの後に0パディングを使用することはできません。同じレベルの文法の順序は関係ありません。
4修飾子
タイプの変更 |
意味 |
hh |
1バイト |
h |
ショート |
l |
長いです |
ll |
長いです |
L |
ロングダウベル |
5タイプ
の種類 |
意味 |
iまたはd |
int |
u |
unsigned int |
O |
オクタル |
バツ |
16進数 |
バツ |
大文字の場合は16進数 |
fまたはF |
フロート、6 |
eまたはE |
インデックス |
g |
浮く |
G |
浮く |
aまたはA |
16進浮動小数点 |
c |
char |
s |
ストリング |
p |
ポインタ |
n |
出力または出力の数 |
int num = 0;
printf("hello world%n\n",&num);
printf("%d\n",num);
hello world
11
scanf()
1 scanf
国旗 |
意味 |
* |
飛び越える |
数 |
最大文字数 |
hh |
char |
h |
ショート |
l |
長い、2倍 |
ll |
長い長い |
L |
ロングダブル |
2 scanf
タイプ |
意味 |
d |
int |
私 |
整数、16進数または8進数の場合があります |
u |
unsigned int |
O |
オクタル |
バツ |
16進数 |
a、e、f、g |
浮く |
c |
char |
s |
ストリング |
[…] |
許可される文字 |
p |
ポインタ |
printf()とscanf()の戻り値
prinff()は出力され
た文字数を返しますscanf()は入力された項目数を返します