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
从标准输入读取一行文本。这种方式可以正确处理含有空格的字符串输入。