我需要将一个整数数组作为二进制写入输出文件,并在C++ Linux中的程序中将二进制数据读取为整数,类似于C#中的BinaryReader和BinaryWriter。我怎么能这么做呢?
谢谢
发布于 2010-11-22 11:25:54
除非有其他突出的原因,否则通常会使用std::ostream::write和std::istream::read。由于生成的是二进制流,因此在打开文件时通常还需要指定std::ios::binary。
发布于 2010-11-22 11:40:39
只是为了充实一下曾傑瑞和J-16 SDiZ的建议:
std::ofstream file(filename, ios::binary);
myFile.write (static_cast<const char*>(&x), sizeof x);
...
file.read(static_cast<char *>(x), sizeof x);此外,如果需要更高的可移植性,您可能需要考虑将数据放在网络字节顺序中:请参阅您系统上的ntohl等人的手册页(或等效内容)。
发布于 2010-11-22 11:28:41
将int数组转换为(char*)并使用istream::read / ostream::write?
https://stackoverflow.com/questions/4241890
复制相似问题