如何在C ++中检查文件是ASCII还是二进制

时间:2008-11-17 18:22:55

标签: c++ file binary ascii

因此,使用系统命令文件,我们可以使用文件来确定文件是ASCII文本还是“数据”。我想知道是否有办法检查代码是哪一个?如果文件是'data',我想基本上抛出一个损坏的错误。我正在使用ifstream来读取文件。谢谢你的帮助!

this question重复。

1 个答案:

答案 0 :(得分:0)

您可以迭代文件的字节并使用std::isprint中的<cchar>来测试该字符是否可打印。如果文件中有非打印字符,则可能是二进制文件。请注意,这仅适用于遗留编码(例如您提到的ASCII),而不适用于Unicode编码的文件。