ファイルの書き込みと読み出し(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)を返します.
#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; }