我只想写一个简单的文本文件:
ofstream test;
test.clear();
test.open("test.txt",ios::out);
float var = 132.26;
BYTE var2[2];
var2[0] = 45;
var2[1] = 55;
test << var << (BYTE)var2[0] << (BYTE)var2[1];
test.close();
但是在输出文件中我得到了:
132.26-7
我不知道问题是什么......
答案 0 :(得分:1)
我认为问题可能是BYTE类型可能是char的typedef。如果是这种情况,那么当您尝试将BYTE写入流时,它将打印与该字节对应的ASCII字符而不是字节的数值。请注意,字符 - 和7对应于ASCII值45和55,例如。
要解决此问题,您需要做两件事:
希望这有帮助!
答案 1 :(得分:0)
BYTE只是unsigned char的别名。默认情况下,在流中输出char时,会将其转换为ASCII字符。在ASCII表中,字符45是' - ',字符55是'7'。
请改为尝试:
test << var << (int)var2[0] << (int)var2[1];