我正在使用下面的代码来读取一个包含名字和姓氏的文件。
名字姓氏
名字姓氏
do
{ in >> tmp2;
cout << tmp2;
} while(tmp2 != '\n');然而,这并不能检测到行的结束,所以我不能前进,因为我得到了一个无限循环。注意: tmp2是一个字符。
我怎么才能解决这个问题。
发布于 2013-04-04 05:41:54
#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;
}发布于 2013-04-04 05:52:12
一种解决方案:使用字符串流
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';
}这会丢弃一行中前两个标记之后的所有内容。
https://stackoverflow.com/questions/15798666
复制相似问题