首頁 > 後端開發 > C++ > 如何更改 C 中「cin」輸入的分隔符號?

如何更改 C 中「cin」輸入的分隔符號?

Linda Hamilton
發布: 2024-12-05 16:39:12
原創
827 人瀏覽過

How Can I Change the Delimiter for `cin` Input in C  ?

修改 C 中 'cin' 輸入的分隔符號

在 C 中使用輸入流時,通常使用 'cin' 讀取使用者輸入。預設情況下,「cin」將空白字元視為分隔符,分隔單字或標記。如果您需要使用不同的分隔符號怎麼辦?

雖然 C 標準函式庫 API 沒有明確提供更改「cin」分隔符號的方法,但可以使用「std::」來實現此目的ios_base::imbue' 函數。

'std::ios_base::imbue' 允許您為輸入新增自訂 'ctype' 方面 溪流。 Ctype 分面定義給定語言環境的字元分類行為。

以下範例示範如何將分隔符號變更為冒號(':')字元:

#include <locale>
#include <iostream>

struct colon_is_space : std::ctype<char> {
  colon_is_space() : std::ctype<char>(get_table()) {}
  static mask const* get_table()
  {
    static mask rc[table_size];
    rc[':'] = std::ctype_base::space;
    rc['\n'] = std::ctype_base::space;
    return &amp;rc[0];
  }
};

int main() {
  using std::string;
  using std::cin;
  using std::locale;

  cin.imbue(locale(cin.getloc(), new colon_is_space));

  string word;
  while(cin >> word) {
    std::cout << word << "\n";
  }
}
登入後複製

在此範例中,建立了一個自訂「ctype」構面「colon_is_space 」。此方面將冒號 (':') 和換行符 ('n') 字元分類為空格。

透過使用此自訂方面向輸入流注入語言環境,我們有效地將 'cin' 的分隔符號變更為冒號。因此,當使用提取運算子 (>>) 讀取輸入時,它將把冒號視為分隔符號。

此技術可用於處理使用非空白字元作為分隔符號的輸入格式.

以上是如何更改 C 中「cin」輸入的分隔符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板