gpt4 book ai didi

c - ansi c fread 16位整数并将其写入ascii文本文件

转载 作者:行者123 更新时间:2023-11-30 19:52:12 25 4
gpt4 key购买 nike

我有一个包含 16 位整数数据的二进制文件,我想将其转换为 ASCII 可读数据。

我的问题是如何使用 fread(&buffer,sizeof(buffer)16,1,fp); 读取文件并再次使用 fwrite(buffer, sizeof(buffer)/7, 1, file); 将数据写入文件。

fread 中的

16 是 16 位,想知道它去哪里或以什么形式去,如果在 fwrite 中,我将把 7 表示 7 位。

请提供一个 C 代码片段示例。我希望生成的文件是一个普通的可读文本文件。

最佳答案

你有很多令人困惑的事情。

假设 buffer 的大小神奇地适合文件 uint8_t 数组,您可以将其读入(从文件 fopen()二进制模式编辑)使用:

fread(buffer, sizeof buffer, in);

如果没有失败的话,这将为您提供 buffer 中的所有位。

然后,输出很简单:

FILE * const out = fopen("numbers.txt", "wt");
if(out != NULL)
{
for(size_t i = 0; i < sizeof buffer; i += 2)
{
const unsigned int here = buffer[i] + 256 * buffer[i + 1];
fprintf(out, "%u\n", here);
}
fclose(out);
}

这假定二进制文件中采用小端字节顺序。将here 分配中的索引交换为大尾数法。它还假定无符号 16 位数字。

关于c - ansi c fread 16位整数并将其写入ascii文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23908138/

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