首先我们要知道的是,文件操作不同于普通变量和其他数据类型的操作,有特定的文件操作函数,只有特定的函数才能对其操作。接下来我们要做的就是了解一下这些特定函数的用法。
1.fopen和fclose
这两个函数是文件操作的必用函数了,一个负责打开文件一个负责关闭文件。
fopen函数返回值是一个结构指针,所以需要定义一个文件类型的结构体指针
如果打开成功,返回一个指向文件的指针,如果失败,返回NULL;
前面的一个参数是文件名,后面一个参数就是打开方式。
fclose函数的返回值是一个int,参数是一个文件指针。如果成功,返回0,如果关闭不成功,返回EOF(-1);
两个函数写完之后都会有一个判断语句
if ((fp = fopen("f12-2.txt", "w")) == NULL) { printf("File open error\n"); exit(1); } if (fclose(fp)) { printf("Can not close the file !"); exit(1); }
二,fgetc(getc)和fputc(fputc)
参数同样是文件指针,返回值是int类型的,强行转换来的,它的作用是将文件指针现在指向的数据输出,如果成功,返回指向的数据。如果失败,如果是因为此时正指向文件尾,就返回EOF,并且设置文件末尾指示符。如果是因为其他读取错误,也会返回EOF,但是会设置perror
第一个参数是写进文件的字符,第二个参数是文件指针。
如果成功,返回写进去的字符,如果失败,则会返回EOF,并设置错误标识符
三,fprintf/sprintf和fscanf
第一个参数是文件指针,第二个参数是格式控制符,后面接变量名,
sprintf第一个参数是文件指针,后面也是格式控制符
这二者都是格式化输出,但是fprintf是格式化输出到文件,sprintf是格式化输出到字符串
两者的运行若成功,返回写入的字符个数,若失败,返回一个负数,并且设置错误标识符
第一个参数是文件指针,后面的参数与fprintf函数类似
如果成功,返回读出数据的个数,如果失败,返回EOF,(文件为空或者读取失误)
四,fread和fwrite
第一个参数是读出数据的存储地址,size指的是读取数据的大小,count指的是需要读多少个这样大小的数据,最后一个参数指的是文件指针
返回值是读取数据的个数,如果大小为0,则ptr指向和内容都不变。如果返回值不等于count的值,则代表读取错误,或者说遇到了EOF,即文件没有那么大。
第一个参数指的是从哪里写进数据到文件中,最后一个参数是文件指针
返回值是count的大小,如果返回值与count大小不符,则代表返回错误或者ptr中数据没有那么多,如果返回值为0,则代表ptr中没有数据
五,feof
功能是判断文件是否是正常结束,如果是正常结束,返回一个非0值,如果不是正常结束,返回0;
六,ftell
返回值是一个长整型,对于二进制文件而言就是从开头到现在的偏移量,对文本文件来说这个数值可能毫无意义。如果运行失败,返回一个-1L;
七,fseek
第一个参数是文件指针,第二个参数是在origin基础上的偏移量,第三个参数就是文件指针的指向
如果成功,返回0;否则返回非0值。
八,rewind
将文件指针移动到开头的地方
如果你能够将上面的函数弄的很清楚,再将我前面的一篇博文弄懂的话,文件这一章节对你而言就很简单了。
深究C语言6.文件操作_喜欢吃豆的博客-CSDN博客
https://blog.csdn.net/m0_63309778/article/details/122097609
诸君向前勿停,我们山顶相见,加油!!!