我正在尝试使用 C 进行编程以将二进制数据写入 .bin 文件,然后迭代以从 0000 写入到 FFFF。我想我会使用带有“wb”标签的 fopen,然后能够写入二进制数据,但我不确定如何使用 C 从 0000 迭代到 FFFF。感谢您的帮助。
现在这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *f = fopen("binary.bin", "wb");
unsigned long i;
//if(f == NULL) { ...error handling... }
for(i = 0x0000; i <= 0xFFFF; i++){
// Write something to the file, e.g. the 16-bit (2 byte) value of "i"
unsigned short someData = i;
fwrite(&someData, 1, 2, f);
}
fclose(f);
return 0;
//printf("Hello World\n");
getchar();
}
这将输出 00 00 01 00 02 00 ...
现在是我的问题。这不是应该读出00 00 00 01 00 02...开头不是应该多一个'00'吗?
此外,我一直在尝试查看如何复制和扩展它,从而使其成为 0000 0000 0001 0001 等? [更新:我刚刚复制了 fwrite 行并再次执行,它解决了这个问题]
最佳答案
这是一个将一些二进制数写入文件的简单示例。
FILE *f = fopen("yourfile", "wb");
if(f == NULL) { ...error handling... }
for(unsigned long i = 0x0000; i <= 0xFFFF; ++i)
{
// Write something to the file, e.g. the 16-bit (2 byte) value of "i"
unsigned short someData = i;
fwrite(&someData, 1, 2, f);
}
fclose(f);
请注意,此处的变量 i
必须大于 16 位,这样它才不会回绕(请参阅我对其他答案的评论)。 long
类型保证至少 32 位的大小。
关于c - 二进制 0000 到 FFFF 使用 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177199/