トップ 一覧 ping 検索 ヘルプ RSS ログイン

C 書式付入出力の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!C 書式付入出力
[Programming C]
[Programming C]{{category 書式}}
!!printf、fprintf、sprintf
 #include <stdio.h>
 int printf(const char *format, ...);
 int sprintf(char *s, const char *format, ...);
 int fprintf(FILE *stream, const char *format, ...);

*様々な型の可変個の引数に書式を設定して出力する。
*出力streamの中での各変数の表現方法は、parameter format で制御する。
*printfは出力を標準出力に書き込む
*fprintfは出力先がstreamで指定されたstreamになることを除けば、printfと同じ
*sprintfは、文字列の終わりを示す'\0'を出力につけ、parameter s で指定された文字列に結果を書き込む。

よく使われる変換指定子
,変換指定子,意味
,%d、%i,整数を10進数で出力
,%o、%x,整数を8進数、16進数で出力
,%c,文字を出力
,%s,文字列を出力
,%f,浮動小数点数(単精度)を出力
,%e,倍精度浮動小数点数を出力
,%g,一般的な形式でdoubleを出力

field指定子の例
 #include <stdio.h>
 
 int main()
 {
   char s[8] = {'H','e','l','l','o','\0'};
   int num = 1234;
   
   printf("%10s\n",   s);
   printf("%-10s\n",  s);
   printf("%10d\n",   num);
   printf("%-10d\n",  num);
   printf("%010d\n",  num);
   printf("%10.4f\n", 12.34);  printf("%*s\n",    10, s);
 }

      Hello
 Hello  
       1234
 1234      
 0000001234
    12.3400
      Hello
!scanf、fscanf、sscanf
 #include <stdio.h>
 int scanf(const char *format, ...);
 int fscanf(FILE *stream, const char *format, ...);
 int sscanf(const char *s, const char *format, ...);

*streamから値を読み取り、読み取った値をpointer parameter でわたされた address の変数に格納する。
*書式指定文字列の使い方は、printfと同じ。変換指定子もほとんど同じ。


----
この本からの覚書。
{{amazon 4797327014}}