它只是一个练习任务,因为"每个文件只是一个具有不同字节集的二进制文件。" ,我正在读取.doc
文件作为二进制文件,假设
"这个.doc文件实际上是一个包含32位无符号数字的二进制文件,我想在文件中按升序对它们进行排序。"
现在到目前为止,我的逻辑是计算文件中的总字节数除以sizeof(int)
,并使int
数组达到该大小。并开始读取字节。但是这个逻辑存在一个问题:
大小为250 bytes
的{strong> file.doc ,其中sizeof(int)
= 4,现在是250/4 = 62.5
,我创建了一个包含63个整数的数组,现在我将如何处理{{1} ,作为32位二进制数?
答案 0 :(得分:0)
执行rem = filesize % sizeof(int)
之类的操作以获取最后一个sizeof(int)
字节连续块之后的字节数,并为数组中的最后一个整数执行fread(&array[i], rem, 1, stream)
。
答案 1 :(得分:0)
通常通过添加填充来处理这些问题。您可以假装原始文件已填充零(例如),直到下一个4个字节的倍数。