getline 是 C++ 中用于从输入流中读取字符串的函数,通常与文件流(如 ifstream)或标准输入(如 cin)一起使用。它属于 <string> 头文件。

基本用法

  1. 定义getline 函数定义在 <string> 头文件中,通常与 <iostream> 一起使用。
  2. 函数原型std::getline(std::istream& stream, std::string& str, char delim)
    • stream:要读取的输入流,如 cin 或文件流对象。
    • str:用于存储读取到的字符串的 std::string 对象。
    • delim(可选):作为行结束符的分隔符,默认为换行符 \n
  3. 读取行getline 会读取输入直到遇到分隔符(默认为换行符),并将读取的内容(不包括分隔符)存储在 str 中。

特点和注意事项

  • 安全性:与使用 cin >> 直接读取字符串相比,getline 可以避免因字符串中的空格而导致的读取中断。
  • 灵活性:你可以自定义分隔符,便于处理不同格式的输入。
  • 输入结束:如果在达到分隔符之前到达文件末尾或发生错误,getline 将设置输入流的状态标志。
  • 空行处理getline 也能读取空行,此时返回的字符串将为空。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>

int main() {
std::string line;

std::cout << "请输入一些文本(包含空格): ";
std::getline(std::cin, line);

std::cout << "你输入的文本是: " << line << std::endl;

return 0;
}

这个例子展示了如何使用 std::getline 从标准输入读取一行文本。这种方式可以正确处理含有空格的字符串输入。


本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。