C语言怎样一行一行读文件?

 我来答
mafangsan
推荐于2016-03-25 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2594万
展开全部

C语言可以通过fgets函数一次读一行数据。

 

fgets函数原型如下:

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

参数 说明

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

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

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

 

fgets函数注意细节如下:

  1. 从文件结构体指针stream中读取数据,每次读取一行。

  2. 读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。

  3. 如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。

  4. 函数成功将返回buf,失败或读到文件结尾返回NULL

     

茅修齐
推荐于2016-07-22 · TA获得超过650个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:272万
展开全部
文件有三行有两种情况。一种是显示是在屏幕上显示三行,其实还是在一行,另一种是以换行符分割行。对第一种情况,遍历统计字符个数,计算出第三行起始地址,对第二种遍历以第二个换行符下一个地址作为第三行起始地址
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liqiinhit
2011-09-08 · TA获得超过1845个赞
知道小有建树答主
回答量:836
采纳率:66%
帮助的人:245万
展开全部
可以用fgets函数,如果你用流访问文件,也可以用getline函数。
追问
例如:
assistant id name price number
yue2 001 snj 25.00 1
assistant id name price number
yue2 002 fd 25.00 1
怎样用getline函数读出来?能帮忙写个过程吗?非常感谢!
追答
#include 
#include

char Line[1024];

std::ifstream m_inputFile("filename");
while(!m_inputFile.eof())
{
m_inputFile.getline(Line, 1022);
}
就行了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lichuru1320
2015-09-16 · TA获得超过117个赞
知道答主
回答量:106
采纳率:100%
帮助的人:51.2万
展开全部
if(fp=fopen(FileName/*"style1.txt"*/,"r"))
{
while(!feof(fp))
{
fscanf(fp,"%s\r\n",buf);
memcpy(FileData[i].file_data,buf,sizeof(buf));

i++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aimxu
2011-09-08 · TA获得超过136个赞
知道答主
回答量:83
采纳率:100%
帮助的人:40.7万
展开全部
getline()函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式