Ascii .txt文件到字节数组-C ++

时间:2018-08-15 16:39:03

标签: c++ file binary hex

如何在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文件进行大规模的操作。

谢谢!

1 个答案:

答案 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)));