如何在c ++中将ascii .txt文件转换为字节数组? 例如,给定XYZ坐标的.txt文件,将其转换为浮点表示形式的字节数组:
253.9999929 58.0428367 -21.3930063253
.9999929 59.0435773 -21.2499391255
...
转换为
bytes array[] = {
01000011,01111110,00000000,00000000,
01000010,01101000,00101011,11011101,
11000001,10101011,00100100,11100001,
00111111,01111111,11111111,10001001... etc
}
我想过将字符串中的每个数字转换为浮点数,然后提取二进制表示形式;但是,我不确定这是否有效。我需要使用具有200000-1400000行XYZ数据的.txt文件进行大规模的操作。
谢谢!
答案 0 :(得分:1)
也许是这样:
struct xyz{
float x;
float y;
float z;
};
istream& operator >>(istream & is, xyz & v) {
return is >> v.x >> v.y >> v.z;
}
std::ifstream f{"floats.txt"};
vector<xyz> floats;
copy(istream_iterator<xyz>{f}, {}, inserter(floats, end(floats)));