fscanffprintf 函数

int fscanf(FILE * fp, char * fmt, par1, par2 ....);

除第一个参数外,其余参数格式和用法同scanf。 和scanf的区别在于不是从键盘读入数据,而是从fp关联的文件中读入数据

int fprintf (FILE * fp, char * fmt, par1, par2 ....);

除第一个参数外,其余参数格式和用法同 printf。 和 printf 的区别在于不是将文字输出到屏幕,而是输出到 fp 关联的文件

实例

写一个程序,将文件 in.txt 里面的整数排序后,输出到 out.txt

#include <iostream> 
#include <cstdio> 
#include <algorithm> 
using namespace std; 

int a[1000]; 

int main() 
{ 
	FILE * fpIn = fopen("in.txt","r"); 
	if ( fpIn == NULL) return 0; //文件打开失败
		FILE * fpOut = fopen("out.txt","w"); 
	int n = 0; 
	while( fscanf(fpIn,"%d",a+n) != EOF) 
		++n;
	fclose(fpIn);
	sort(a,a+n); 
	for (int i = 0;i < n; ++i) 
		fprintf(fpOut,"%d ",a[i]);
	fclose(fpOut); //一定要关闭 
	return 0;
}

<aside> ⚠️ 打开 → 读写 → 一定要记得关闭

</aside>

fgets 函数实现读取整个文本文件

char * fgets ( char * str, int num, FILE * fp);

功能

读取若干字符到str,碰到以下三种情况之一读取就结束:

会自动往读入的最后一个字符后面加'\0' 读入成功则返回 str, 否则返回 NULL

解释

<aside> ⚠️ 如果读入一行的字符数超过 (num - 1),下一次读取从上一次末尾继续

</aside>

实例