将文本数据以二进制保存
小弟编了个运算程序,因数据以xml保存的话文件较大,现想以二进制保存,请问应如何实现?
此外,请问二进制文件保存后应如何解码?
[解决办法]
- C/C++ code
#include <fstream>#include <iostream>using namespace std;int main(int argc, char* argv[]){ fstream outFile("result.bin", ios::out | ios::binary); outFile << 2*5; outFile.close(); fstream inFile("result.bin", ios::in | ios::binary); int result; inFile >> result; cout << "the result of 2*5 is: " << result << endl; inFile.close(); return 0;}
[解决办法]
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
推荐使用WinHex软件查看文件或内存中的原始字节内容。