C ++ - 读取文件行

时间:2013-04-03 21:40:09

标签: c++

我使用下面的代码来读取包含名字和姓氏的文件。

firstname lastname

firstname lastname

do
{   in >> tmp2;
    cout << tmp2;
} while(tmp2 != '\n');
然而,这并没有检测到行的结束,所以当我得到一个无限循环时我无法前进。注意tmp2是一个字符。

我该如何解决这个问题。

2 个答案:

答案 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';
}

在前两行代币之后丢弃任何内容。