我有这个奇怪的问题:
我将 16 个字符写入一个二进制文件,然后写入 3 个整数,但是当我使用某些二进制文件查看器打开文件时,我看到添加了一个额外的字节(等于0x0D).
这是我的代码:
for(i = 0; i < 16; i++)
{
if(i < strlen(inputStr))
{
myCharBuf[0] = inputStr[i];
}
else
{
myCharBuf[0] = 0;
}
fwrite(myCharBuf, sizeof(char), 1, myFile);
}
myIntBuf[0] = inputNumber1;
fwrite(myIntBuf, sizeof(int), 1 ,myFile);
myIntBuf[0] = inputNumber2;
fwrite(myIntBuf, sizeof(int), 1 ,myFile);
myIntBuf[0] = inputNumber3;
fwrite(myIntBuf, sizeof(int), 1 ,myFile);
我得到以下字节值:
61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0D 0A00 00 00 05 00 00 00 08 00 00 00
当我期望时:
61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0A00 00 00 05 00 00 00 08 00 00 00
有谁知道为什么会发生这种情况?
0A 是换行符,0D 是回车符。这些通常与文本模式相关。
您是否以二进制模式打开了该文件? (例如。fopen("foo.txt", "wb"
))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)