如何在C ++中读取文件时展望多个步骤

时间:2012-09-30 08:12:21

标签: c++ file newline delimiter

我有一个输入文件,由多个由空格或换行符分隔的整数组成。 EX:

7\n
2 2\n
3 4\n
\n
8\n
3 1\n
5 6\n
7 7\n
\n
3\n
1 2\n
3 4\n

....等等。

我需要根据此输入文件确定我有多少不同的输入集。我无法做到这一点。有什么提示吗?

1 个答案:

答案 0 :(得分:5)

逐行读取文件。每次读取后,检查流中的下一个字符是什么。如果它是'\n'(或EOF),那么您就在输入集的末尾。

std::string line;
std::ifstream stream;
size_t sets = 0;

while (std::getline(stream, line)) {

    // do something with line

    int next = stream.get()
    if (next == '\n' || next == EOF)
        ++sets;
    else
        stream.putback(next);
}