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()关闭,以释放内存空间!

免责声明:内容仅供参考,不保证正确性!


全栈后端 / C语言教程 :


















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.