我使用下面的代码来读取包含名字和姓氏的文件。
firstname lastname
firstname lastname
do
{ in >> tmp2;
cout << tmp2;
} while(tmp2 != '\n');
然而,这并没有检测到行的结束,所以当我得到一个无限循环时我无法前进。注意tmp2是一个字符。
我该如何解决这个问题。
答案 0 :(得分:2)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream fin("file");
string first, last, comment;
while (fin >> first >> last) {
cout << first << ' ' << last << endl;
getline(fin, comment); // get the rest annoying strings
}
fin.close();
return 0;
}
答案 1 :(得分:0)
一种解决方案:使用字符串流
std::stringstream sstrm;
std::string instr;
while (std::getline(std::cin, instr)) {
sstrm.str(instr);
std::string fname, lname;
sstrm >> fname >> lname;
std::cout << fname << ' ' << lname << '\n';
}
在前两行代币之后丢弃任何内容。