c语言逐行读取文件?

c语言逐行读取文件?,第1张

可以使用fgets函数

1 函数名:

fgets

2 声明:

char *fgets(char *buf, int bufsize, FILE *stream)

3 头文件

stdio.h

4 功能:

从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

5 参数:

*buf: 字符型指针,指向用来存储所得数据的地址。

bufsize: 整型数据,指明存储数据的大小。

*stream: 文件结构体指针,将要读取的文件流。

6 返回值:

成功,则返回第一个参数buf;

在读字符时遇到end-of-file(文件结尾),则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;

如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。

7 示例代码:

逐行读取in.txt中的数据,并打印。每行不超过100个字符。

int main()

{

    FILE *fp

    char buf[101]

    fp = fopen("in.txt", "r")//打开文件

    while(fgets(buf, sizeof(buf), fp))//每次读取一行数据,直到读取失败。

    {

        printf("%s\n", buf) //打印该行。

    }

    fclose(fp)//关闭文件。

    

    return 0

}

C语言逐行读取文件内容 ,参考代码如下:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define MAX_LINE 1024

int main()

{

 char buf[MAX_LINE]  /*缓冲区*/

 FILE *fp            /*文件指针*/

 int len             /*行字符个数*/

 if((fp = fopen("test.txt","r")) == NULL)

 {

 perror("fail to read")

 exit (1) 

 }

 while(fgets(buf,MAX_LINE,fp) != NULL)

 {

 len = strlen(buf)

 buf[len-1] = '\0'  /*去掉换行符*/

 printf("%s %d \n",buf,len - 1)

 }

  return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8049507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存