为什么std :: noskipws不起作用,或者应该怎么做?
|
首先我的理解是
cin >> std::noskipws >> str;
应该将整行从“ 1”粘贴到“ 2”中,例如“我有空格”。但是,这只会将“ i”放入str
。这可能是一个错误的假设,在这种情况下,std::noskipws
会做什么?
我知道有一个函数std::getline
确实起作用,但是仅出于教育目的,我决定尝试让std::noskipws
为我工作。我过去曾尝试过,但是它永远无法工作,因此我通常继续使用std::getline
。
我想到目前为止,我发现std::noskipws
在技术上只是取消设置std::skipws
,而内部对internal10ѭ的调用
ios_base::unsetf(std::ios::skipws);
要么
ios_base::unsetf(ios_base::skipws);
因此,我尝试继承自己的流形式ѭ10,并手动设置(取消设置)这些标志。仍然没有骰子。
那么,我是完全脱离基地还是有办法进行这项工作?
没有找到相关结果
已邀请:
2 个回复
磨标烫徽啪
旅牢斯讲
的工作方式如下:
始终保持当前的读取位置。如果设置了“ 9”,则在调用“ 17”之前,当前读取位置将前进到第一个非空格字符。 您看到的行为(在
之后的第一个空格处停止)是由
代表
(和
)引起的。该运算符不考虑“ 15”标志。另一类型的
可能会做出其他决定,甚至在空格中也会继续。