使用istream读取null终止字符串的最简单方法是什么?

7 c++ istream

我有一个istream,我需要读取具体数量的字节,但我不知道它的长度.它被终止.我想我可以1)写一个循环并一次读取一个字节2)告诉它给我一个缓冲区或字符串,它现在开始直到某个字节(在这种情况下为0).或者3)一次只读取一个字节的buf并检查它是否为0,如果不是则将其附加到字符串.

第三个我知道我可以做,但其他2听起来像istream可能是可能的(在这种情况下它是一个文件流).我还在阅读istream的文档.有很多.

Eug*_*nca 13

由于你不知道它的长度,最简单的是:

std::string strBuf;
std::getline( istream, strBuf, '\0' );
Run Code Online (Sandbox Code Playgroud)