C++ 标准库 - <iostream>

C++ std::getline 从输入流读取字符,直到遇到分隔符(默认换行)或到达末尾,把内容写入 std::string。分隔符本身不写入结果。声明在 <string>,与 iostream 配合使用。

原型

istream& getline(istream& is, string& str);
istream& getline(istream& is, string& str, char delim);

参数

  • is:输入流,一般为 cin。
  • str:接收结果的字符串,调用前原有内容被替换。
  • delim:可选分隔符,默认为 '\n'。

返回值

返回 is。读到文件结束且未读入任何字符时设置失败状态。

示例

#include <iostream>
#include <string>

int main() {
    std::string line;
    std::getline(std::cin, line);
    std::cout << line.size() << std::endl;
    return 0;
}

输出:

11

注意事项

示例假定输入一行 hello world(11 个字符,不含换行)。若此前用 cin >> 读过字段,缓冲区常残留换行,下一次 getline 会得到空串;可先 cin.ignore 到换行,或统一用一种读取方式。

下一页介绍setw:设置字段宽度。