我使用下面的代码将numpy数组转换为bytes并写入文件:
import numpy as np
f=open("myfile","wb")
mydata=np.array([1,2,3,600])
bina = mydata.tobytes()
print(bina)
f.write(bina)
f.close()
然后,我用C++读取了这个文件,使用了以下代码:
typedef unsigned char BYTE;
using namespace std;
std::vector<BYTE> readFile(const char* filename)
{
// open the file:
std::streampos fileSize;
std::ifstream file(filename, std::ios::binary);
// get its size:
file.seekg(0, std::ios::end);
fileSize = file.tellg();
file.seekg(0, std::ios::beg);
// read the data:
std::vector<BYTE> fileData(fileSize);
file.read((char*) &fileData[0], fileSize);
return fileData;
}
int main()
{
std::vector<BYTE> fileData = readFile("myfile");
}
我无法在C++中生成原始数据[1,2,3,600],我该怎么办?
1条答案
按热度按时间mo49yndu1#
你必须决定一个元素大小(32或64位的元素),并使用相同的两端。理想情况下,你还应该决定字节序,但我假设你会使用相同的系统,所以将有相同的字节序。让我们假设我们使用32位:
Python面:
C++端: