在我的项目中,我写了一个a.bin文件,其中包含无符号短(16位LE值)形式的传感器数据。但我错了价值。你们能告诉我这里出了什么问题吗?
#include<stdio.h>
int main()
{
FILE *fp = fopen("a.bin","ab");
unsigned short us;
us=123;
fwrite(&us,2,1,fp);
printf("%04X",us); // 0x:007B
us=1234;
fwrite(&us,2,1,fp);
printf("%04X",us); // 0x04D2
us=-3145;
fwrite(&us,2,1,fp);
printf("%04X",us); // 0xF3B7
fclose(fp);
}
在我执行fwrite()
之后a.bin
7b 00 d0 bc 04 d0 b8 d0 b7
但我想要
a.bin
7b 00 04 d2 f3 b7
答案 0 :(得分:2)
修正错误后,代码对我很有用。
请注意,以模式https://github.com/google/google-visualization-python/zipball/master
打开文件意味着&#34;追加&#34;。我将其更改为"a"
,这将覆盖现有文件:
<强> "w"
强>
fwrite.c
结果:
#include<stdio.h>
int main(void)
{
FILE *fp = fopen("a.bin","wb");
unsigned short us;
us = 123;
fwrite(&us, sizeof(us), 1, fp);
printf("%04hX\n",us); // 007B
us = 1234;
fwrite(&us, sizeof(us), 1, fp);
printf("%04hX\n",us); // 04D2
us = -3145;
fwrite(&us, sizeof(us), 1, fp);
printf("%04hX\n",us); // F3B7
return 0;
}