C语言读取文件fgets()和fgetc()函数
读取文件
C语言中的fgets()函数,可以以字符串的形式读取指定的文件流中的数据,而fgetc()函数则是用于读取字符。
fgets()函数语法
char *fgets( char *buf, int n, FILE *fp );
如上语法,fgets()函数,将从FILE对象指定的文件流中读取n-1个字符到buf指定的缓冲区,n为第二个参数。为什么是n-1个参数呢?个人的理解是因为C语言的字符串的末尾都会有一个空字符用来结尾。
- buf:内存缓冲区,即fgets()会将数据从FILE指定的文件流中读取到该缓冲区;
- 如果fgets()在读取文件流的时候在最后一个字符之前遇到换行符 '\n' ,或文件的末尾EOF,那么就会直接返回读取到的字符,包括遇到的换行符;
提示:因为fgets()函数是将数据读取到buf缓冲区,因此没有返回值!
提示:buf需要自己声明,跟声明字符串变量一样,具体可参考下方的实例代码。
fgetc()语法
int fgetc( FILE * fp );
fgetc()读取一个字符,如果遇到错误,则返回EOF。
读取文件实例代码
使用C语言读取文件之前,可以事先在指定的硬盘位置创建文件,并编辑一些数据,用于读取,这里使用的是上一章节中使用fputs()和fputc()创建的文件和数据:
#include <stdio.h>
int main() {
FILE *file1 = fopen("E:\\fputs.txt","r");
char buf[30];
fgets(buf, 30, file1);
printf("fgets()读取到的内容是:%s\n",buf);
fclose(file1);
FILE *file2 = fopen("E:\\fputc.txt","r");
int x = fgetc(file2);
printf("fgetc()读取到的是:%d\n", x);
fclose(file2);
return 0;
}
提示:文件打开之后,应该使用fclose()关闭,以释放内存空间!
免责声明:内容仅供参考,不保证正确性!