首先我的理解是
cin >> std::noskipws >> str;
应该将整行从cin
“我有空格”插入str
. 但是,这只会将“i”放入str
. 这可能是一个错误的假设,在这种情况下会std::noskipws
做什么?
我知道有一个功能std::getline
并且确实有效,但只是出于教育目的,我决定尝试std::noskipws
为我工作。我过去曾尝试过,但它从来没有用过,所以我通常继续使用std::getline
.
到目前为止,我认为我发现的是,std::noskipws
从技术上讲,std::skipws
它只是在内部取消了basic_iostream
正义调用
ios_base::unsetf(std::ios::skipws);
或者
ios_base::unsetf(ios_base::skipws);
所以我尝试继承我自己的流形式basic_iostream
并手动设置这些标志(取消设置)。还是没有骰子。
那么,我是完全不在基地还是有办法让这项工作?