如何在C++中读取文件时提前查看多个步骤

How to look ahead multiple steps while reading files in C++

本文关键字:C++ 文件 读取      更新时间:2023-10-16

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

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

....等等。

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

逐行读取文件。每次读取后,检查流中的下一个字符是什么。如果是'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);
}