这只是一个练习任务,因为“每个文件只是一个具有不同字节集的二进制文件。” ,我正在读一篇.doc
文件为二进制文件,假设
“这个 .doc 文件实际上是一个包含 32 位无符号数字的二进制文件,我想在文件中将它们按升序排序。”
到目前为止,我的逻辑是计算文件中的总字节数除以 sizeof(int)
,并制作 int
该大小的数组。并开始读取 bytes 。但这个逻辑有一个问题:
file.doc,大小为 250 bytes
哪里sizeof(int)
= 4 ,现在250/4 = 62.5
,我创建了一个包含 63 个整数的数组,现在我将如何处理 63rd integer
,作为 32 位二进制数?
最佳答案
执行类似 rem = filesize % sizeof(int)
的操作来获取最后一个连续的 sizeof(int)
字节 block 之后的字节数,以及最后一个数组中的整数执行fread(&array[i], rem, 1, stream)
。
关于C - 将 .doc 文件读取为 32 位二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35536266/