就像readsome甚至没有阅读。返回0,并且不读取任何字符。这是怎么了

#include <fstream>
#include <iostream>

int main ()
{
  std::fstream stream("list.cpp", std::ios::in);

  if (stream.good() || !stream.bad() || stream.is_open()) {

    std::cout << "Well, stream looks good." << std::endl;

    char justOneChar = 'L';
    auto ssize = stream.readsome(&justOneChar, 1);

    std::cout << ssize << " : " << justOneChar << std::endl;
  }

  return -1;
}

输出:

好吧,流看起来不错。
0:大

最佳答案

auto ssize = stream.readsome(&justOneChar, 1);
1是要读取的最大字符数。如果流内部缓冲区在调用时为空,则将返回零作为返回值。
以下引号(加粗体)显示了此方面:

基本上,这是一种获取尽可能多的字符(取决于您指定的限制)而不必等待流提供更多字符的方法。

关于C++ std::istream readsome不读取任何内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27098420/

10-11 22:38
查看更多