std::ws

来自cppreference.com
< cpp‎ | io‎ | manip
定义于头文件 <istream>
template< class CharT, class Traits >
std::basic_istream<CharT,Traits>& ws( std::basic_istream<CharT, Traits>& is );

从输入流舍弃前导空白符。

表现为无格式输入函数 (UnformattedInputFunction) ,除了不修改 is.gcount() 。在构造并检查 sentry 对象后,从流释出并舍弃字符,直至出现任何下列条件之一:

  • 输入序列中出现文件尾条件(该情况下函数调用 setstate(eofbit) 但不设置 failbit )。
  • 输入序列中下个可用字符 c 不是以 std::isspace(c, is.getloc()) 确定的空白字符。不释出该非空白字符。

这是仅为输入的 I/O 操纵符,可用如 in >> std::ws 的表达式对任何 std::basic_istream 类型的 in 调用。

目录

[编辑] 参数

is - 到输入流的引用

[编辑] 返回值

is (到释出连续空白符后的流的引用)

[编辑] 示例

#include <iostream>
#include <istream>
#include <sstream>
#include <string>
 
int main()
{
    std::istringstream s("     this is a test");
    std::string line;
    std::getline(s >> std::ws, line);
    std::cout << "ws + getline returns: \"" << line << "\"\n";
}

输出:

ws + getline returns: "this is a test"

[编辑] 参阅

释出并舍弃字符,直至发现给定字符
(std::basic_istream 的公开成员函数) [编辑]