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
是处理输入时常用的函数,它提供了一种方便且安全地读取用户输入或文件内容的方法。