#include <string>
#include <iostream>
int main() {
std::string str;
char magic[9];
std::cin.read((char *)magic, sizeof(magic));
std::cin.seekg(0, std::ios::beg);
while (std::cin >> str) {
std::cout << str << std::endl;
}
}
我的代码包含在 std::cin 上的 seekg(0) 函数的实现,当运行时它在某些文件上的行为不符合预期
./a.out < filename
那些行为不符合预期的文件具有字符数(包括结束行字符和其他空格)小于 9 的属性(9 是我们在 seekg 之前从 cin 读取的字符数)
如果文件包含超过 9 个字符,则它的行为符合预期,例如:
123456789
将输出为
123456789
而包含少于 9 个字符的文件不会给出输出
例如:
1234
不会输出