cフォーマットされた入力と出力の詳細な説明

標準化された入出力関数の%記号の後の内容は常に謎でした。ここで合計してみてください。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);// - 左对齐, 整数前填充空格,, 输出6位 ,  
 123
printf("%+06d\n",-123); // 加符号, 0填充,。
-00123
printf("%+08.2f\n",123.1); // 加符号, 0填充, 共八个字符, 小数点后2位, 输出浮点型。
+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); //%n的使用, 本地编译器不能使用%n, 在线编译器可以
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()は入力された項目数を返します

おすすめ

転載: blog.csdn.net/weixin_43705953/article/details/115304823