2014-04-01 34 views
2

結合CIN到istream_iterator和閱讀它,我沒有空格後:如何做,如果我想stream_iterator不忽略空格

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; 

有沒有辦法將其配置爲不忽略空格?

回答

2

如果您的目標是從流中讀取未格式化的字符數據,則可以使用std::istreambuf_iterator,而不需要更改流的任何格式標誌。

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

對不起答案很簡單,結合CIN之前迭代器,你必須使用機械手noskipws:

std::cin>>noskipws; 
iter = istream_iterator<char>(std::cin); 

現在,它的工作。