【发布时间】:2011-08-05 00:12:54
【问题描述】:
首先我的理解是
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 并手动设置这些标志(取消设置)。还是没有骰子。
那么,我是完全偏离了基地还是有办法让这项工作发挥作用?
【问题讨论】:
-
好问题;欢迎来到 SO :)
-
也许你想change the delimiter,但我怀疑。