解析字符串流的最佳方式

Best way to parse a stringstream

本文关键字:最佳 方式 字符串      更新时间:2023-10-16

我目前有一个std::stringstream,它包含来自给定文件的所有数据。这个文件包含一些文本和二进制数据。

开头有一个字符串名,所以我这样做:

std::string name;
std::getline(stream, name, '');

稍后,我需要检索contentLength。我失败的地方:

int32_t contentLength;
stream >> contentLength;

我了解到这将不起作用,因为stream >>运算符将尝试转换而不是length的字面值转换 my 4字节。

我已经看到了一些低水平(c)的实现如何做到这一点。但是我希望你们能告诉我一个更可靠的方法。

可以使用read函数读取二进制数据

stream.read((char*)&contentLength, sizeof(contentLength));

如果您在具有不同端序的计算机之间共享此文件,则需要小心,在这种情况下,字节可能需要反转