文件的写入与读出(1)(fprintf 和 fscanf)

fprint 

fprintf是C/C++中的一个格式化库函数,位于头文件<cstdio>或<bits/stdc++.h>中,其作用是格式化输出到一个流/文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。

函数原型:int fprintf (FILE * stream, const char*format, [argument])

FILE*stream:文件指针          const char* format:输出格式

fprintf( )会根据参数format 字符串来转换并格式化数据, 然后将结果输出到参数stream 指定的文件中, 直到出现字符串结束('\0')为止。

返回值:   fprintf()的返回值是输出的字符数,发生错误时返回一个负值.

fscanf

fscanf 位于头文件<stdio.h>中, 其功能为根据数据格式(format)从输入流(stream)中读入数据(存储到argument);与fgets的差别在于:fscanf遇到空格和换行时结束,注意空格时也结束,fgets遇到空格不结束

函数原型: int fscanf(FILE * stream, const char * format, [argument...]);

FILE*stream:文件指针          const char* format:输出格式

返回值:整型,成功返回读入的参数的个数,失败返回EOF(-1)。

#include<stdio.h>

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结束输入)\n");
	scanf("%d", &num);
	while (-1 != num) {
		fprintf(infp, "%d ", num);
		printf("请输入数字(-1结束输入)\n");
		scanf("%d", &num);
	}
	
	printf("成功存入"); 

	fclose(infp);
}

int main() {
	
	fprintF();
	fscanF();
	
	return 0;
	
}


猜你喜欢

转载自blog.csdn.net/baidu_41922630/article/details/86608985