函式
<ios> <iostream>

std::noskipws

ios_base& noskipws (ios_base& str);
不跳過空白字元
清除 str 流的 skipws 格式標誌。

當未設定 skipws 格式標誌時,所有流操作都將初始空白字元視為要提取的有效內容。

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

此標誌可以透過 skipws 操縱器進行設定。當設定此標誌時,會讀取並丟棄流中儘可能多的初始空白字元,直到找到一個非空白字元為止。這將適用於流上進行的 *所有* 格式化輸入操作 operator>>

請注意,許多提取操作將空白字元本身視為終止字元,因此,當 skipws 標誌停用時,某些提取操作可能會從流中提取零個字元。

對於標準流, 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 處於有效狀態。

另見