在 `ifstream::getline` 中禁用 Ctrl-Z 行为
Disabling Ctrl-Z behaviour in `ifstream::getline`
我想使用 ifstream::getline
从文件中读取行,但文件包含字节 Ctrl-Z (0x1A),这使得 getline
认为它已到达文件末尾 (这是在 Windows 中——在 *nix 中它将是 Ctrl-D,如果我没记错的话)。我可以以某种方式禁用此行为,并告诉 getline
忽略 Ctrl-Z 吗?
仅供参考:文件在 WebAssembly testsuite 中 comments.wast
,它测试 WebAssembly 解析器接受块注释中的任何和所有字符的能力。
当您的 ifstream
对象使用二进制模式时,这不应该发生。
像这样创建它:
std::ifstream fin(<path>, std::ios::binary)
这当然会阻止您使用流的其他功能,但如果您的主要目标是能够在忽略特殊字符的同时读取所有类型的值,这可能是可行的方法。
我想使用 ifstream::getline
从文件中读取行,但文件包含字节 Ctrl-Z (0x1A),这使得 getline
认为它已到达文件末尾 (这是在 Windows 中——在 *nix 中它将是 Ctrl-D,如果我没记错的话)。我可以以某种方式禁用此行为,并告诉 getline
忽略 Ctrl-Z 吗?
仅供参考:文件在 WebAssembly testsuite 中 comments.wast
,它测试 WebAssembly 解析器接受块注释中的任何和所有字符的能力。
当您的 ifstream
对象使用二进制模式时,这不应该发生。
像这样创建它:
std::ifstream fin(<path>, std::ios::binary)
这当然会阻止您使用流的其他功能,但如果您的主要目标是能够在忽略特殊字符的同时读取所有类型的值,这可能是可行的方法。