C++ 写错答案
在我的项目中,我编写了一个.bin文件,其中传感器数据采用无符号短格式(16位LE值)。但我得到了错误的值。你们能告诉我这里出了什么问题吗C++ 写错答案,c++,c,fwrite,short,C++,C,Fwrite,Short,在我的项目中,我编写了一个.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=123
#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);
}
但是我想要
a.bin
7b 00 04 d2 f3 b7
修复错误后,代码对我来说运行良好 请注意,在模式
“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
fclose(fp);
return 0;
}
你所说的“错误值”是什么意思?有什么问题吗?我想要a.bin 7b 00 D2 04 B7 F3,但不正确。你说的“不正确”是什么意思?有什么问题吗?显示您的实际代码。这将无法编译(
a.bin
缺少引号)。我怀疑你所做的任何“更改”都是问题所在。void main
是错误的。我发现记事本++显示不同的十六进制输出。。谢谢你的回答~!
#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
fclose(fp);
return 0;
}