printf関数およびsprintf関数およびfprintf関数の使用詳細
printf関数
関数プロトタイプ
int printf(char *format[,argument…]);
文字列formatはフォーマット文字列,[,argument・・]は変数リストである.
ヘッダファイルを含むstdio.hこの関数を呼び出すことができる
関数の機能
一般的なフォーマット出力関数
使用方法の説明
一般的な変換の説明
%c 1文字
%d符号10進整数%e浮動小数点数、e-記数法%E浮動小数点数、E-記数法%f浮動小数点数、10進記数法
%i符号付き10進数(%dと同じ)%o符号なし8進数整数%pポインタ%s文字列%u符号なし10進数整数%x 16進数0 fの符号なし16進数整数%X 16進数0 fの符号なし16進数整数%%を使用してパーセントを印刷
例:
結果:
常用フォーマット制御
+または省略出力:右揃え出力を表します-:あり-左揃え出力を表します
m.n:mはドメイン幅、すなわち対応する出力項目が出力装置に占める文字数を指す.nは精度を指す.出力の実数を説明するための小数点以下の桁数.nを指定した場合、暗黙の精度はn=6ビットとなります.例:
結果:
あつりょくスタック
printf関数はC呼び出し仕様、すなわちパラメータが右から左にスタックを押し、スタックが呼び出し者によってバランスされる.△このような右から左への方式は、コンパイラ、機械によって異なることはありません.
例:
結果:
sprintf関数
関数プロトタイプ
int sprintf(char *string, char *format[,argument…]);
文字列formatはフォーマット文字列,[,argument・・]は変数リストである.
ヘッダファイルを含むstdio.hこの関数を呼び出すことができる
関数の機能
フォーマットされた文字列formatを文字列stringに格納
使用方法の説明
例:
結果:
fprintf関数
関数プロトタイプ
int fprintf(FILE *stream, char *format[,argument…]);
文字列formatはフォーマット文字列,[,argument・・]は変数リストである.
ヘッダファイルを含むstdio.hこの関数を呼び出すことができる
関数の機能
fprintf()関数は、指定するformat(フォーマット)に基づいてstream(ストリーム)で指定するファイルに情報(パラメータ)を送信する.fprintf()はprintf()と同じようにしか動作しない.fprintf()の戻り値は出力文字数であり、エラーが発生すると負の値を返す.
使用例:
関数プロトタイプ
int printf(char *format[,argument…]);
文字列formatはフォーマット文字列,[,argument・・]は変数リストである.
ヘッダファイルを含むstdio.hこの関数を呼び出すことができる
関数の機能
一般的なフォーマット出力関数
使用方法の説明
一般的な変換の説明
%c 1文字
%d符号10進整数%e浮動小数点数、e-記数法%E浮動小数点数、E-記数法%f浮動小数点数、10進記数法
%i符号付き10進数(%dと同じ)%o符号なし8進数整数%pポインタ%s文字列%u符号なし10進数整数%x 16進数0 fの符号なし16進数整数%X 16進数0 fの符号なし16進数整数%%を使用してパーセントを印刷
例:
#include<stdio.h>
int main()
{
int a='a';
float b=3.1415;
int *p=&a;
char *str="hello world!";
printf("%d
",a);
printf("%c
",a);
printf("%e
",b);
printf("%E
",b);
printf("%f
",b);
printf("%i
",a);
printf("%o
",a);
printf("%p
",p);
printf("%s
",str);
printf("%u
",a);
printf("%x
",a);
printf("%X
",a);
printf("%%
");
a=-10;
printf("%u
",a);
return 0;
}
結果:
97
a
3.141500e+000
3.141500E+000
3.141500
97
141
0022FF44
Hello world!
97
61
61
%
4294967286
常用フォーマット制御
+または省略出力:右揃え出力を表します-:あり-左揃え出力を表します
m.n:mはドメイン幅、すなわち対応する出力項目が出力装置に占める文字数を指す.nは精度を指す.出力の実数を説明するための小数点以下の桁数.nを指定した場合、暗黙の精度はn=6ビットとなります.例:
#include<stdio.h>
int main()
{
float b=3.1415;
double d=3.1415;
char *str="hello world!";
printf("%f
",d);
printf("%.4f
",d);
printf("%.2f
",d);
printf("%6.4f
",d);
printf("%4.4f
",d);
printf("%10.4f
",d);
printf("%-10.4f
",d);
printf("%s
",str);
printf("%.5s
",str);
printf("%6.5s
",str);
return 0;
}
結果:
3.141500
3.1415
3.14
3.1415
3.1415
3.1415
3.1415
hello world!
hello
hello
あつりょくスタック
printf関数はC呼び出し仕様、すなわちパラメータが右から左にスタックを押し、スタックが呼び出し者によってバランスされる.△このような右から左への方式は、コンパイラ、機械によって異なることはありません.
例:
#include<stdio.h>
int main()
{
char *str="abc";
char *p=str;
printf("%c%c",*p,(*p++));
return 0;
}
結果:
ba
sprintf関数
関数プロトタイプ
int sprintf(char *string, char *format[,argument…]);
文字列formatはフォーマット文字列,[,argument・・]は変数リストである.
ヘッダファイルを含むstdio.hこの関数を呼び出すことができる
関数の機能
フォーマットされた文字列formatを文字列stringに格納
使用方法の説明
例:
#include<stdio.h>
int main()
{
char *name="jack";
char *str;
sprintf(str,"hello %s",name);
printf("%s
",str);
return 0;
}
結果:
Hello jack
fprintf関数
関数プロトタイプ
int fprintf(FILE *stream, char *format[,argument…]);
文字列formatはフォーマット文字列,[,argument・・]は変数リストである.
ヘッダファイルを含むstdio.hこの関数を呼び出すことができる
関数の機能
fprintf()関数は、指定するformat(フォーマット)に基づいてstream(ストリーム)で指定するファイルに情報(パラメータ)を送信する.fprintf()はprintf()と同じようにしか動作しない.fprintf()の戻り値は出力文字数であり、エラーが発生すると負の値を返す.
使用例:
#include<stdio.h>
int main()
{
char *name="jack";
FILE *f;
char str[1024]={0};
f=fopen("test.txt","w");
fprintf(f,"hello %s",name);
fclose(f);
f=fopen("test.txt","r");
fread(str,1024,1,f);
printf("%s
",str);
fclose(f);
return 0;
}
結果:hello jack