Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
因此使用系统命令文件我们可以使用文件来确定文件是ASCII文本还是“数据”。我想知道是否有办法检查代码是哪一个?如果文件是“数据”,我想基本上抛出一个损坏的错误。我正在使用 ifstream 来读取文件。谢谢你的帮助!
这个问题的重复。
您可以遍历文件的字节并使用std::isprintfrom<cchar>来测试字符是否可打印。如果文件中有不可打印的字符,则很可能是二进制文件。请注意,这仅适用于遗留编码(例如您提到的 ASCII),不适用于 Unicode 编码的文件。
std::isprint
<cchar>