从stringstream读取输入

par*_*c65 3 c++ stringstream

我正在读取大小为5的字符数组的输入,

stringstream ss;

char a[5];

if (!ss.read(a, 5))
{
    // throw exception
}

if (!ss.get(a, 5))
{
   // throw exception
}
Run Code Online (Sandbox Code Playgroud)

这两个功能似乎都有效,有什么区别吗?

Tim*_*Tim 7

ss.read 将从流中读取5个字节,除非它到达流的末尾.

ss.get 将读取4个字节,除非它命中分隔符('\n')或流的末尾.它也将null终止字符串.