c++读取文档,先读出文本的行数,再将文本输入到结构体指针中 应如何做? (我必须要先知道行数!)

请问读完行数后是否需要重新打开一遍文本请问如果重新打开,ifstreaminfile(file,ios::binary);中的“infile”是必须换个名字吗?还有个问题... 请问读完行数后是否需要重新打开一遍文本
请问如果重新打开,ifstream infile(file,ios::binary); 中的“infile” 是必须换个名字吗?
还有个问题:我统计行数,是通过统计\n的数量,那我用来计数的count应该从0开始还是从一开始?
展开
 我来答
千江月success
2013-02-21 · TA获得超过827个赞
知道小有建树答主
回答量:1031
采纳率:100%
帮助的人:901万
展开全部
正常情况不用重新打开。。
请问是如何读取文本的行数的??
rewind(fp);
可以将指针回到起始位置。。
------------------------------
infile不用换名字啊,但是你那个写了有点问题,
ifstream infile(file,ios::binary);其实不能叫打开文件

打开文件是
infile.open(*****);
---------
假设就是要你那样写,那就换个名字,
这样写
ifstream infile(file,ios::binary);

*******
infile.close();
ifstream infile2(file,ios::binary); //重新打开

-----------------------------
还有一个问题,为何一定要知道行数呢??
就算要知道行数,你是如何读取文件统计\n的?
难道用的是fgetc,判断当前字符??
--------------
明显效率太低了。。
完全可以读取一行啊
使用getline
例如
ifstream infile(file,ios::binary);

string str;
while(getline(infile,str))
{
//对str操作,就是当前行

}
无花果的功效与作用
2013-02-21 · TA获得超过706个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:119万
展开全部
计算完行数,将指针移到文件开始,或者重新打开

不用换名字啊 ,应该从0开始
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
271868386
2013-02-21 · 超过10用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:29.3万
展开全部
用rewind()函数 将文件读写指针重新设置到开头

count从0开始
infile是你定义的类名 名称可以随便换的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式