整数写入文件的问题
int main()
{
std::fstream fsbin( "D:/a.bin ", std::ios_base::binary|std::ios_base::trunc|std::ios_base::out);
if(!fsbin.good())
{
std::cout < < "a.bin " < < std::endl;
return -1;
}
int a = 123;
fsbin < < a;
fsbin.close();
return 0;
}
这个是用二进制写的文件,为什么写入a.bin的是31 32 33三个字符呢?
这跟定义char * a = "123 "写入没有区别。
为什么不是写入123整数的16进制表示法呢?也就是占4个字节。为00 00 00 7B
[解决办法]
< < 进去的都是字符串
fsbin.write((char*)&a ,sizeof(a));这样写的话,就是二进制文本