getline 是 C++ 中用于从输入流中读取字符串的函数,通常与文件流(如 ifstream)或标准输入(如 cin)一起使用。它属于 <string> 头文件。
基本用法
- 定义:
getline函数定义在<string>头文件中,通常与<iostream>一起使用。 - 函数原型:
std::getline(std::istream& stream, std::string& str, char delim)。stream:要读取的输入流,如cin或文件流对象。str:用于存储读取到的字符串的std::string对象。delim(可选):作为行结束符的分隔符,默认为换行符\n。
- 读取行:
getline会读取输入直到遇到分隔符(默认为换行符),并将读取的内容(不包括分隔符)存储在str中。
特点和注意事项
- 安全性:与使用
cin >>直接读取字符串相比,getline可以避免因字符串中的空格而导致的读取中断。 - 灵活性:你可以自定义分隔符,便于处理不同格式的输入。
- 输入结束:如果在达到分隔符之前到达文件末尾或发生错误,
getline将设置输入流的状态标志。 - 空行处理:
getline也能读取空行,此时返回的字符串将为空。
示例代码
1 |
|
这个例子展示了如何使用 std::getline 从标准输入读取一行文本。这种方式可以正确处理含有空格的字符串输入。