fscanf
和 fprintf
函数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>