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

标签 c++ file newline delimiter

我有一个输入文件,其中包含多个由空格或换行符分隔的整数。 例如:

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

...等等。

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

最佳答案

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

关于c++ - 如何在 C++ 中读取文件时向前查看多个步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12659741/

相关文章:

Java检测文件系统的变化

c - 如果换行符 '0A' 是文件的一部分,如何读取完整文件。

python - 将目录中的所有文件加载为名为正在加载的文件名的变量?

uitextview - 如何在 IB 中的 UITextView 中输入新行

创建 .gitattributes 文件后,Git 不会更改行结尾

android - 使用 OpenCV 在 android 中进行图像拼接

c# - 从 C# 中的串行端口接收不均匀的结果

c++ - 如何在用户输入 ^X 之前读取输入

c++ - 如何清空文件中的一行并将其写回原来的位置?

c++ - 每次运行时文件中的连续输出