c++读取文档,先读出文本的行数,再将文本输入到结构体指针中 应如何做? (我必须要先知道行数!)
请问读完行数后是否需要重新打开一遍文本请问如果重新打开,ifstreaminfile(file,ios::binary);中的“infile”是必须换个名字吗?还有个问题...
请问读完行数后是否需要重新打开一遍文本
请问如果重新打开,ifstream infile(file,ios::binary); 中的“infile” 是必须换个名字吗?
还有个问题:我统计行数,是通过统计\n的数量,那我用来计数的count应该从0开始还是从一开始? 展开
请问如果重新打开,ifstream infile(file,ios::binary); 中的“infile” 是必须换个名字吗?
还有个问题:我统计行数,是通过统计\n的数量,那我用来计数的count应该从0开始还是从一开始? 展开
3个回答
展开全部
正常情况不用重新打开。。
请问是如何读取文本的行数的??
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操作,就是当前行
}
请问是如何读取文本的行数的??
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操作,就是当前行
}
展开全部
计算完行数,将指针移到文件开始,或者重新打开
不用换名字啊 ,应该从0开始
不用换名字啊 ,应该从0开始
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用rewind()函数 将文件读写指针重新设置到开头
count从0开始
infile是你定义的类名 名称可以随便换的
count从0开始
infile是你定义的类名 名称可以随便换的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询