std::getline
是 C++ 標準庫中的一個函數,用于從輸入流中讀取一行數據并存儲到字符串中。它通常用于讀取用戶輸入或從文件中讀取文本數據。以下是 std::getline
的一般用法和說明:
#include <iostream>
#include <string>int main() {std::string input;// 從標準輸入流(鍵盤輸入)讀取一行數據std::cout << "請輸入一行文本: ";std::getline(std::cin, input);// 輸出讀取的文本std::cout << "你輸入的文本是: " << input << std::endl;return 0;
}
參數:
- istream& is: 輸入流對象,可以是
std::cin
(標準輸入),也可以是文件流對象。 - string& str: 存儲讀取的行的字符串對象。
- char delim: 可選參數,用于指定行的分隔符,默認為
\n
(換行符)。
返回值:
std::getline
函數返回輸入流對象,可以在條件語句中直接使用作為布爾表達式,檢查讀取是否成功。
注意事項:
- 如果輸入流中沒有數據或遇到文件結尾(EOF),則
std::getline
將返回并設置流狀態,如果讀取成功,則str
包含讀取的行,不包括分隔符。 - 如果需要處理多行輸入,可以在循環中重復調用
std::getline
。 - 在讀取過程中,分隔符并不包含在存儲的字符串中。
std::getline
是處理輸入時常用的函數,它提供了一種方便且安全地讀取用戶輸入或文件內容的方法。