フォーマット制御文字:
%d
: 10 進数の符号付き整数を出力するために使用されます。%u
: 10 進数の符号なし整数を出力するために使用されます。%f
: 10 進浮動小数点数を出力するために使用されます。%e
または%E
: 浮動小数点数を指数形式で出力するために使用されます。%g
Or%G
: 浮動小数点数の出力に使用されます。%f
または、 値のサイズに応じて自動的に選択されます%e
。%x
または%X
: 16 進数を出力します。%c
: 単一文字を出力する場合に使用します。%s
: 文字列を出力するために使用されます。%p
: ポインタアドレスを出力するために使用されます。%lu
: 符号なし長整数を出力するために使用されます。%lld
または%I64d
: 符号付きの Long Long 整数を出力します。%llu
または%I64u
: 符号なし長長整数を出力します。%Lf
: 長い倍精度浮動小数点数を出力するために使用されます。-
%%
形式制御文字: パーセント記号を出力するために使用されます%
。出力時には 2 つのパーセント記号を一緒に接続する必要があります。
フォーマット修飾子:
-
:左揃え。+
: 出力符号 (正の数の前に「+」を追加)。#
: 8 進数の接頭辞 (0)、16 進数の接頭辞 (0x または 0X)、または浮動小数点の小数点 (.)。0
: データ出力の左側に、デフォルトのスペース文字の代わりに 0 を埋め込みます。m.n
:m
は指定された最小幅、n
および指定された精度です。*
: 動的に渡される幅と精度を受け取るために使用されます。たとえば、%*.*f
これは浮動小数点数を出力することを意味し、幅と精度は int 型の 2 つのパラメータで動的に渡されます。
エスケープ文字:
\a
:アラーム(ベルが鳴る)。\b
:Backspace(戻る)スペースを 1 つ戻します。\f
:ページを切り替えます。\n
: 改行。\r
: 入力。\t
:水平タブ。\v
: 垂直タブ文字。\\
: バックスラッシュ。\'
:アポストロフィ。\"
:二重引用符。\?
:疑問符。\0
: 文字列終了フラグ。
コードデモ:
#include<stdio.h>
int main() {
// 整型
int a = 123;
printf(" % d\n", a); // 输出 123
// 无符号整型
unsigned int b = 456;
printf("%u\n", b); // 输出 456
// 浮点数
double c = 1.23;
printf("%f\n", c); // 输出 1.230000
// 指数形式浮点数
double d = 12345.678;
printf("%e\n", d); // 输出 1.234568e+04
// 十六进制
int e = 0x123;
printf("%x\n", e); // 输出 123
// 字符
char f = 'a';
printf("%c\n", f); // 输出 a
// 字符串
char g[] = "hello world";
printf("%s\n", g); // 输出 hello world
// 指针地址
int* h = &a;
printf("%p\n", h); // 输出 a 的地址
// 无符号长整型
unsigned long i = 1234567890ul;
printf("%lu\n", i); // 输出 1234567890
// 有符号长长整型
long long j = -123450000000ll;
printf("%lld\n", j); // 输出 -123450000000
// 无符号长长整型
unsigned long long k = 123450000000ull;
printf("%llu\n", k); // 输出 123450000000
// 长双精度浮点数
long double l = 1.23;
printf("%Lf\n", l); // 输出 1.230000
// 百分号转义
printf("%%\n"); // 输出 %
// 格式修饰符
int num = 123;
double fnum = 3.14159;
printf("%-5d\n", num); // 输出 123 (左对齐)
printf("%+d\n", num); // 输出 +123(输出符号)
printf("%#x\n", num); // 输出 0x7b(十六进制前缀)
printf("%05d\n", num); // 输出 00123(用 0 左对齐填充)
printf("%.2f\n", fnum); // 输出 3.14 (精度控制)
printf("%*.*f\n", 8, 2, fnum); // 输出 3.14 (动态宽度和精度,从后面两个 int 参数中传入)
// 转义字符
printf("hello\tworld\n"); // 输出 hello world
return 0;
}
修飾子とフォーマット制御文字の使用については、特定の C 言語チュートリアルまたはリファレンス マニュアルを参照し、実際のニーズに応じて使用することを選択できます。同時に、printf 関数の戻り値を使用して、出力が成功したかどうかを判断できます。