将fscanf,fprintf与我们所熟知的scanf,printf函数对比看,我们就能很快的了解他俩的用法。
fscanf,fprintf与scanf,printf唯一的区别就是多了一个FILE * stream。
另外我们扩展一点关于printf与scanf函数,其实printf scanf也有一个FILE*的指针,只不过当我们的C程序在启动时,会默认打开三个标准流stdin,stdout, stderr。而我们的printf和scanf分别对应的是stdout,stdin,所以我们在使用这两个函数的时候,不需要想fprintf,fscanf一样给它们指定一个流。
那么在了解了上面的内容之后,对于fprintf,fscanf我信息大家就能理解了
fprintf和fsscanf都需要我们为它们指定一个流,而这两个函数的对象大多是文件操作
#include <stdio.h>
int main()
{
FILE* pf = fopen("date.txt", "w");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//向文件中写入数据
fprintf(pf, "%d %d %d %d", 10, 20, 30, 40);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
此时数据就会被写入到指定的文件当中去。
下面我们再来将文件中的数据读出来
int main()
{
int a = 0;
int b = 0;
FILE* pf = fopen("date.txt", "r");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//读取文件中的数据
fscanf(pf, "%d %d", &a, &b);
//打印
printf("%d, %d", a, b);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
当然这里只是用最简单的例子来帮助大家学习这两个函数,实际的使用的时候肯定不会像上面的代码那么挫(结合循环,函数等)。
接下来我们再来看一下这两个函数的返回值,方便小伙伴们在以后的实际运用中使用。
关于返回值这一点,fprintf,fscanf 和printf,scanf几乎是一样的,也方便了大家记忆!多好!