我有一个 istream,我需要准确读取特定数量的字节,但我不知道它的长度。它是空终止的。我在想我可以 1) 编写一个循环并一次读取一个字节 2) 告诉它返回一个缓冲区或字符串,该缓冲区或字符串现在开始直到某个字节(在这种情况下为 0)。或 3) 一次读入一个 buf 恰好一个字节,并检查它是否为 0,如果不是,则将其附加到字符串。

第 3 个我知道我可以做,但其他 2 个听起来可能可以使用 istream(在这种情况下是文件流)。我仍在阅读 istream 的文档。有很多。

最佳答案

由于您不知道它的长度,因此最简单的是:

std::string strBuf;
std::getline( istream, strBuf, '\0' );

关于c++ - 使用 istream 读取空终止字符串的最简单方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5294575/

10-12 16:02