【发布时间】:2020-01-14 15:24:05
【问题描述】:
我正在创建一个程序,它从文件中读取作者、标题和卷数并打印出标签,
(例如。 亚当斯 完整的世界史 第 1 卷,共 10 卷
亚当斯 完整的世界史 第 2 卷,共 10 卷等)
为了使其正确读取而不是无限循环,我必须将所有变量更改为字符串。但是,为了将来参考卷号,我需要它是 int 以便我可以比较数量。 我对使用 do-while 循环改进代码的想法进行了注释,以说明为什么我希望 vnum 具有 int 值。
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
ifstream fin;
string author;
string title;
string vnum;
int counter=1;
fin.open("publish.txt", ios::in);
while (!fin.eof())
{
getline(fin, author);
getline(fin, title);
getline(fin, vnum);
//do
//{
cout << author << endl;
cout << title << endl;
cout << "Volume " << counter << " of " << vnum << endl;
cout << endl;
//counter++;
//} while(counter < vnum);
}
fin.close();
return 0;
}
我正在读取的文件:
亚当斯
完整的世界历史
10
塞缪尔
我的犯罪生涯
2
鲍姆
巫师故事
6
【问题讨论】:
-
关注
while (!fin.eof())。 It's not your friend.
标签: c++ file while-loop do-while getline