C の printf
C 言語では、printf() 関数を使用して、フォーマットされた出力を標準出力に出力します。 標準出力 (通常はコンソール画面です)。 printf 関数は C 標準ライブラリの一部です。 stdio.h> また、さまざまな方法で出力をフォーマットできるようになります。
printfの構文
printf ( ' formatted_string ', arguments_list);
パラメーター
- formatted_string: 印刷するデータを指定する文字列です。文字や整数などの変数の値を出力するための形式指定子も含まれる場合があります。 argument_list: フォーマット指定子に対応する変数名です。
戻り値
- printf() は、正常に実行された後に印刷される文字数を返します。
- エラーが発生した場合は負の値が返されます。
printfの例
この例では、文字列「Hello Geek!」を出力しています。 printf() 関数を使用して出力します。 printf() 関数では、二重引用符 ( ) 内に記述した内容が出力に出力されます。
C
// C program to illustrate the use of printf function> #include> int> main()> {> > // using printf to print 'Hello Geek!'> > printf> (> 'Hello Geek!'> );> > return> 0;> }> |
出力
Hello Geek!
C printf での書式設定
C では、値は文字型、整数型、浮動小数点型などになります。 printf を使用してこれらの値を表示および書式設定するには、書式設定された文字列で使用される書式指定子があります。これらの書式指定子はパーセント記号で始まります 「%」。
フォーマット指定子の構文
%[flags][width][.precision][length]specifier
1. 指定子
データの種類を表す文字です。一般的に使用される指定子のいくつかは次のとおりです。
- %d : 整数の印刷用 %f : 浮動小数点数の印刷用 %c: 文字の印刷用 %s: 文字列の印刷用 %p: メモリアドレスの印刷用 %x : 16 進数値の印刷用
例
printf(' %c ', char_variable ); 2.幅
これは、印刷される文字の最小数を示す副指定子です。
文字数が指定した幅より少ない場合は、空白が残りの文字の位置を埋めるために使用されます。ただし、文字数が指定幅を超える場合は、すべての文字が切り取られずに印刷されます。
例
printf('% 25 s', some_string ); または
printf('% * s', 25 , some_string ); 3. 精度
精度副指定子の意味は、それが使用されている形式指定子によって異なります。
- 整数データ(d、i、u、o、x、X)の場合: 印刷する最小桁数を指定します。ただし、幅のサブ指定子とは異なり、空白の代わりに、このサブ指定子は数値の先頭にゼロを追加します。数値の桁数が精度を超える場合は、数値がそのまま出力されます。 Float または Double Data(f, e, a, A) の場合: 小数点の後に印刷する桁数を指定します。文字列の場合: 印刷する文字列の長さを指定します。
例
printf('% .10 d', some_integer ); printf('% .3f ', some_float ); printf('% .25 s', some_string) ; または
printf('% .* d', 10 , some_integer ); printf('% .* f', 3 , some_float ); printf('% .* s', 25 , some_string ); 4. 長さ
メモリ内のデータ型の長さを指定します。 C に対応して使用されます。
// C program to print a variable> #include> int> main()> {> > int> num1 = 99;> > int> num2 = 1;> > printf> (> 'The sum of %d and %d is %d
'> , num1, num2,> > num1 + num2);> > return> 0;> }> |
出力
The sum of 99 and 1 is 100
例 2: 幅を指定した printf
この例では、printf() 関数によって印刷される出力の幅を指定します。
C
// C program to illustrate the use of printf with width> // specifier> #include> int> main()> {> > // number to be printed> > int> num = 123456;> > // printing the num with 10 width and getting the> > // printed characters in char_printed> > printf> (> 'Printing num with width 10: '> );> > int> chars_printed => printf> (> '%10d'> , num);> > printf> (> '
Number of characters printed: %d'> ,> > chars_printed);> > // specifying with using other method> > printf> (> '
Printing num with width 3: '> );> > chars_printed => printf> (> '%*d'> , 3, num);> > printf> (> '
Number of characters printed: %d'> ,> > chars_printed);> > return> 0;> }> |
出力
Printing num with width 10: 123456 Number of characters printed: 10 Printing num with width 3: 123456 Number of characters printed: 6
ご覧のとおり、現在の文字よりも小さい幅を定義した場合でも、すべての文字が出力されます。また、幅を定義する 2 つの方法についても説明しました。
例 3: 精度サブ指定子を使用した printf
この例では、printf() 関数の精度サブ指定子を示します。
C
// C program to illustrate the use of precision> // sub-specifier> #include> int> main()> {> > int> num = 2451;> > float> dec = 12.45126;> > char> * str => 'techcodeview.com'> ;> > // precision for integral data> > printf> (> 'For integers: %.10d
'> , num);> > // precision for numbers with decimal points> > printf> (> 'For floats: %.2f
'> , dec);> > // for strings> > printf> (> 'For strings: %.5s'> , str);> > return> 0;> }> |
出力
For integers: 0000002451 For floats: 12.45 For strings: Geeks
例 4: 長さサブ指定子を使用した printf
C
// C program to illustrate the length modifier> #include> int> main()> {> > long> var = 3000000000;> > // printing var using %d> > printf> (> 'Using %%d: %d'> , var);> > // printing var using %ld> > printf> (> '
Using %%ld: %ld'> , var);> > return> 0;> }> |
出力
Using %d: -1294967296 Using %ld: 3000000000