gpt4 book ai didi

c - 确定文件是否包含二进制或 ASCII 数据

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:10 24 4
gpt4 key购买 nike

我将一个文件作为输入参数,我需要确定数据是否为二进制(好吧,我猜是 ASCII 或二进制),类似于 *nix 上的"file"命令,但在我的应用程序中.

我不确定该怎么做,因为当我读取数据时,我是这样做的:

fread(&rndByte, sizeof(unsigned int), 1, fp);
// reading one unsigned int at a time from file fp

我一直在考虑多次测试该值是否小于 128,但不知道如何在一次读取整个 int 时进行测试。我曾经考虑过一次循环超过 1 个字节并以这种方式检查,但我所在的系统不喜欢我正在做的转变。

有什么想法、建议吗?

最佳答案

I was thinking of testing if the value is < 128

如果认为文本(即使是英文文本)永远不会包含基本拉丁语之外的字符,那就太天真了。 Microsoft® 程序特别喜欢在文本中添加破折号和“智能引号”。

更好的方法是查找 ASCII 控制字符。文本文件往往会有很多换行符(\n 和/或 \r 取决于平台),也许还有一些制表符,但几乎没有任何换行符其他控制字符。

关于c - 确定文件是否包含二进制或 ASCII 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com