根据
cppreference
,值为x1a的字符以文本模式终止Windows上的输入。你大概在一开始就有这样一个角色。我的空。doc文件有一个作为第7字节。
您应该以二进制模式读取文件:
std::ifstream fin("1.txt", std::ios::binary);
你仍然可以使用
ignore
忽略前缀。然而,直到一个特定的角色出现时,它才被忽略。二进制前缀可以包含该字符。如果这些前缀的长度始终相同,则忽略特定数量的字节后缀。此外,您不能依靠查看记事本中的文件来计算字节数。有很多看不见的角色。您应该查看文件的十六进制视图。许多优秀的文本编辑器都可以做到这一点,或者您可以使用Powershell的
Format-Hex -Path <path>
命令例如,下面是我的前几行:
00000000 D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00 ÃÃ.à ¡±.á........
00000010 00 00 00 00 00 00 00 00 3E 00 03 00 FE FF 09 00 ........>...þ...
00000020 06 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................
在没有更多信息的情况下,不清楚删除前缀的最佳方法是什么。