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:设置字段宽度。