c++读取python生成的二进制文件
- 1.python将数据直接存储为二进制
- 2.c++中读取二进制
- 参考文献
python中生成二进制文件,直接读取比较容易。常规的工作原理是将数据以字符串的形式进行保存及读取。
那如果是将数据直接保存成二进制,再在c++中读取,该如何操作呢?
1.python将数据直接存储为二进制
这里用到了struct库。
import structls=[1,2,3,4,5,6,7,8,9,10]
bin_dat = struct.pack('i' * len(ls), *ls)with open("./1.bin","wb") as f:f.write(bin_dat)
f.close()
2.c++中读取二进制
void readBin(const string& filename, vector<int>& res)
{ifstream fs(filename, fstream::in | fstream::binary);int num;for (int i = 0; i < 10; i++){fs.read((char*)&num, sizeof(int));res.push_back(num);}return;
}
在main函数中调用:
vector<int> res;
readBin( "./1.bin", res);
打印结果:
1 2 3 4 5 6 7 8 9 10
搞定!
如果有更好的方法,欢迎交流。
参考文献
[1] python 数字列表写入二进制文件