C语言中操作文件-用格式化的方式读写文件-学习笔记-63

引入

我们前面将了如何输出一个字符、如何输出一串字符,但是数据并不仅仅只有字符,数据的类型是十分丰富的。我们在使用 printf 和 scanf 的时候,通过%d %s %f %o来格式化不同的数据,那么磁盘文件能否也这样进行操作呢?

格式化读写函数

其实就像 gets 、puts 和 fgets、fputs一样。
格式化读写函数是从 printf 、scanf 延伸

fprintf(文件指针,格式字符串,输出表列);
fscanf(文件指针,格式字符串,输入表列);

fprintf 函数:

1
2
3
4
int i=3;
float f=5.3;
fprintf(fp,"%d,%6.2f",i,f);
//将 int 型的 i 和 float 型的 f 按 %d 和 %6.2f 的形式输出到 fp 指向的文件中

输出结果位

3,4.5

函数的第二个参数,规定了输出的内容的格式。

fscanf 函数:

1
2
3
4
int i;
float f;
fscanf(fp,"%d,%f",&i,&f);
//磁盘上如果有3,4.5,那就会把3传给 i,4.5传给 f

磁盘上如果有3,4.5,那就会把3传给 i,4.5传给 f。

缺点

这种文件的读写方式简单易懂,但是输入输出的时候,要进行 ASCII 码的转换,所以十分的耗时,我们在进行频繁的数据交换的情况下,最好不要用 fprintf 和 fscanf,应该直接操作二进制文件。下节,我们就来说说 fwrite 和 fread 函数进行二进制读写。

尾巴

这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。


-------------The End-------------
欢迎请我喝咖啡哦~!