C语言怎样读取文本的每一行

文本内容如下:12583695569548962365254请问高手,用C语言怎样通过循环一行一行地读取出数据呢?(也就是一次读取一行,接着又循环读取下一行)... 文本内容如下:
1
2
58
369
5
569
54896
2365
25
4
请问高手,用C语言怎样通过循环一行一行地读取出数据呢?(也就是一次读取一行,接着又循环读取下一行)
展开
 我来答
风若远去何人留
推荐于2016-02-08 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450111
专业C/C++软件开发

向TA提问 私信TA
展开全部
可以使用fgets函数来实现。

1 函数名:
fgets
2 声明形式:
char *fgets(char *buf, int bufsize, FILE *stream);
3 头文件:
stdio.h

4 功能及参数说明:
从stream中读取一行数据存到buf中。如果数据长度小于bufsize,那么读入整行数据,并将换行符转换为字符串结束符\0。 如果数据长度超过bufsize,那么只读入bufsize大小的数据,并在结尾添加\0。
5 返回值:
成功,则返回第一个参数buf;
在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;
如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。
TableDI
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击65步自动完成表格匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
明天NC723
2018-07-09 · 超过20用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:27.3万
展开全部

网上找了一个使用fscanf函数实现的读一行的代码,本人试过可用,遇到空格不会切断。

#include <stdio.h>

int main(int argc,char* argv[])
{
FILE* fin;
char line[100];
fin = fopen("test.txt","r");
while(fscanf(fin,"%[^\n]%*c\n",line)!=EOF){
printf("%s\n",line);
}

fclose(fin);
return 1;
}

test.txt的内容如下(三行,每一行中有空格,还有一行回车行):

程序执行结果:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
youlvconglin
推荐于2018-02-27 · TA获得超过103个赞
知道答主
回答量:49
采纳率:0%
帮助的人:23.6万
展开全部
FILE *fin;
char *one_line;
one_line = (char*)malloc( MAX_LINE_SIZE * sizeof(char) );
if((fin = fopen(argv[1], "r"))==NULL)
{
printf("can not open file %s !\n", argv[1]);
exit(-1);
}

while( fgets(one_line, MAX_LINE_SIZE, fin) != NULL )
{
printf("读一行打印一行%s",one_line);

}

fclose(fin);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式