首頁 >後端開發 >C++ >在 C 中讀取字串的 `std::cin` 和 `std::cin.getline()` 有什麼不同?

在 C 中讀取字串的 `std::cin` 和 `std::cin.getline()` 有什麼不同?

Patricia Arquette
Patricia Arquette原創
2024-12-14 00:09:11388瀏覽

What's the Difference Between `std::cin` and `std::cin.getline()` for Reading Strings in C  ?

理解std::cin.getline() 及其與std::cin 的區別

std::iostream 提供了廣泛的輸入/輸出操作的機制。其中,std::cin作為標準輸入對象,提供存取字元資料的方法和函數。然而,當涉及到讀取字串或行時,std::cin 的實用性被專門的方法 std::cin.getline() 所超越。

std::cin.getline() :深入了解其功能

std::cin.getline() 是std::cin 和類似物件特有的方法,可以有效率地讀取字元資料。它對兩個參數進行操作:最大字元數和儲存讀取資料的目的地。

此方法在三種不同的條件下終止讀取過程:

  1. 遇到結束一行
  2. 可用輸入字元耗盡
  3. 達到指定的最大字元數limit

區分std::cin 和std::cin.getline()

雖然 std::cin 提供了一種讀取單個字元的便捷方法,它缺乏優雅地處理基於行的輸入的能力。 std::cin.getline() 透過專門讀取整行字元來填補這一空白,確保準確捕獲字串或多單字輸入。

使用std::cin 的替代輸入選項

除了std::cin.getline() 之外,std::cin 還支援多種其他輸入法,包括:

  • std::cin>> s; - 將單字讀入字串變數's'
  • std::cin >>我; - 將單一數字讀入整數變數'i'
  • std::getline(std::cin, s); - 將整行讀入字串變數's'(相當於std::cin.getline(),沒有字元限制)
  • std::cin.ignore(100); -跳過輸入流中接下來的 100 個字元

以上是在 C 中讀取字串的 `std::cin` 和 `std::cin.getline()` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn