C++ 如果我希望流迭代器不忽略空白,该怎么办

C++ 如果我希望流迭代器不忽略空白,该怎么办,c++,istream,C++,Istream,将cin绑定到istream_迭代器并读取其后,我没有空格: iter = istream_iterator<char>(std::cin); istream_iterator<char> iend; for(int i=0;i<maxBufferSize;++i) { if(iter==iend) return STREAMBUFFER_EOF; c = *iter; buffer += c; iter++; } if(

将cin绑定到istream_迭代器并读取其后,我没有空格:

iter = istream_iterator<char>(std::cin);
istream_iterator<char> iend;
for(int i=0;i<maxBufferSize;++i)
{
    if(iter==iend)
      return STREAMBUFFER_EOF;
    c = *iter;
    buffer += c;
    iter++;
}
if(iter==iend)
  return STREAMBUFFER_EOF;
return STREAMBUFFER_OK;
iter=istream\u迭代器(std::cin);
istream_迭代器iend;

对于(int i=0;i对不起,答案非常简单,在将cin绑定到迭代器之前,您必须使用操纵器noskipws:

std::cin>>noskipws;
iter = istream_iterator<char>(std::cin);
std::cin>>noskipws;
iter=istream_迭代器(std::cin);

现在它开始工作了。

对不起,答案很简单,在将cin绑定到迭代器之前,您必须使用操纵器noskipws:

std::cin>>noskipws;
iter = istream_iterator<char>(std::cin);
std::cin>>noskipws;
iter=istream_迭代器(std::cin);

现在它开始工作了。

如果您的目标是从流中读取未格式化的字符数据,则可以使用
std::istreambuf\u迭代器
,而无需更改流的任何格式标志

std::istreambuf_iterator<char> iter(std::cin), iend;
for(int i=0;i<maxBufferSize;++i)
...
std::istreambuf_迭代器iter(std::cin),iend;

对于(int i=0;i如果您的目标是从流中读取未格式化的字符数据,则可以使用
std::istreambuf_迭代器
,而无需更改流的任何格式标志

std::istreambuf_iterator<char> iter(std::cin), iend;
for(int i=0;i<maxBufferSize;++i)
...
std::istreambuf_迭代器iter(std::cin),iend;
对于(int i=0;i