函式
<ios> <iostream>

std::skipws

ios_base& skipws (ios_base& str);
跳過空白字元
str 流設定 skipws 格式標誌。

當設定 skipws 格式標誌時,會讀取並丟棄流中儘可能多的空白字元,直到遇到一個非空白字元。這適用於流上進行的每一次格式化輸入操作(使用 operator>>)。

製表符、回車符和空格都將被視為空白字元(參見 isspace)。

可以使用 noskipws 操縱符來取消設定此標誌,強制提取操作將前導空白字元視為要提取的內容的一部分。

對於標準流,skipws 標誌在初始化時是設定的。

引數

str
格式標誌受影響的流物件。
因為此函式是一個操縱符,它被設計為在不帶引數的情況下,與流上的插入 (<<) 和提取 (>>) 操作結合使用(見下例)。

返回值

引數 str

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// skipws flag example
#include <iostream>     // std::cout, std::skipws, std::noskipws
#include <sstream>      // std::istringstream

int main () {
  char a, b, c;

  std::istringstream iss ("  123");
  iss >> std::skipws >> a >> b >> c;
  std::cout << a << b << c << '\n';

  iss.seekg(0);
  iss >> std::noskipws >> a >> b >> c;
  std::cout << a << b << c << '\n';
  return 0;
}

輸出
123
  1

請注意,在第一組提取中,前導空格被忽略了,而在第二組中,它們被提取為有效字元。

資料競爭

修改 str。對同一個流物件的併發訪問可能導致資料競爭。

異常安全

基本保證:如果丟擲異常,str 處於有效狀態。

另見