ファイルの書き込みと読み出し(1)(fprintfとfscanf)
1697 ワード
fprint
fprintfはC/C++のフォーマットライブラリ関数であり、ヘッダファイルまたはに位置し、ストリーム/ファイルにフォーマット出力する役割を果たす.関数のプロトタイプはint fprintf(FILE*stream,const char*format,[argument]...)です.fprintf()関数は、指定したフォーマットに従って出力ストリームにデータを書き込む.
関数プロトタイプ:int fprintf(FILE*stream,const char*format,[argument])
FILE*stream:ファイルポインタconst char*format:出力フォーマット
fprintf()は、パラメータformat文字列に基づいてデータを変換してフォーマットし、文字列が終了する('0')までパラメータstreamで指定したファイルに結果を出力します.
戻り値:fprintf()の戻り値は出力文字数であり、エラーが発生すると負の値を返す.
fscanf
fscanfはヘッダファイルにあり、データフォーマット(format)に基づいて入力ストリーム(stream)からデータを読み込む(argumentに格納する)機能を有する.fgetsとの違いは、fscanfがスペースと改行に遭遇した場合に終了し、スペースに注意した場合にも終了し、fgetsがスペースに遭遇した場合に終了しないことです.
関数プロトタイプ:int fscanf(FILE*stream,const char*format,[argument...]);
FILE*stream:ファイルポインタconst char*format:出力フォーマット
戻り値:整数、読み込んだパラメータの個数を正常に返し、EOF(-1)を返します.
fprintfはC/C++のフォーマットライブラリ関数であり、ヘッダファイルまたはに位置し、ストリーム/ファイルにフォーマット出力する役割を果たす.関数のプロトタイプはint fprintf(FILE*stream,const char*format,[argument]...)です.fprintf()関数は、指定したフォーマットに従って出力ストリームにデータを書き込む.
関数プロトタイプ:int fprintf(FILE*stream,const char*format,[argument])
FILE*stream:ファイルポインタconst char*format:出力フォーマット
fprintf()は、パラメータformat文字列に基づいてデータを変換してフォーマットし、文字列が終了する('0')までパラメータstreamで指定したファイルに結果を出力します.
戻り値:fprintf()の戻り値は出力文字数であり、エラーが発生すると負の値を返す.
fscanf
fscanfはヘッダファイルにあり、データフォーマット(format)に基づいて入力ストリーム(stream)からデータを読み込む(argumentに格納する)機能を有する.fgetsとの違いは、fscanfがスペースと改行に遭遇した場合に終了し、スペースに注意した場合にも終了し、fgetsがスペースに遭遇した場合に終了しないことです.
関数プロトタイプ:int fscanf(FILE*stream,const char*format,[argument...]);
FILE*stream:ファイルポインタconst char*format:出力フォーマット
戻り値:整数、読み込んだパラメータの個数を正常に返し、EOF(-1)を返します.
#include
void fprintF();
void fscanF();
void fscanF() {
FILE* outfp;
int num;
outfp = fopen("data.txt", "r");
while(NULL == outfp) {
printf(" ");
}
fscanf(outfp, "%d", &num);
while (!feof(outfp)) {
printf("%d ",num);
fscanf(outfp, "%d", &num);
}
fclose(outfp);
}
void fprintF() {
FILE* infp;
int num;
infp = fopen("data.txt", "w");
if (NULL == infp) {
printf(" !");
}
printf(" (-1 )
");
scanf("%d", &num);
while (-1 != num) {
fprintf(infp, "%d ", num);
printf(" (-1 )
");
scanf("%d", &num);
}
printf(" ");
fclose(infp);
}
int main() {
fprintF();
fscanF();
return 0;
}