草庐IT

noskipws

全部标签

c++ - noskipws对cin的影响>>

据我了解,提取运算符会跳过开头的空格,并在遇到空格或流结尾时停止。noskipws可用于停止忽略前导空格。我有以下使用noskipws的程序。#includeusingnamespacestd;intmain(){charname[128];cout>noskipws>>name;cout>name;cout我的查询是:如果我输入“John”作为第一个输入,那么第二个cin>>操作不会等待输入并且不会将任何内容复制到目的地,即名称数组。我希望第二个cin>>至少传输一个换行符或流的结尾,而不是仅仅将目标字符串设置为空。为什么会这样?当我输入“JohnSmith”作为第一个cin>>语句

c++ - 为什么 std::noskipws 不起作用,或者它应该做什么?

首先我的理解是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(