公司动态

使用getline读取一整行——与cin的区别

📅 2026/7/19 6:23:27
使用getline读取一整行——与cin的区别
如果我们用标准库中的iostream将标准输入的内容cin读取到s中。在执行读取操作时string对象会自动忽略开头的空白即空格符、换行符、制表符等并从第一个真正的字符开始读起直到遇见下一处空白为止。*注意不要与初始化直接初始化和拷贝初始化混淆*如果我们希望能在最终读入的字符串中保留输入时的空白符这时应该用getline函数代替原来的运算符。getline函数的参数是一个输入流和一个string对象函数从给定的输入流中读入内容直到遇到换行符为止注意换行符已被读进来了然后把所读的内容存入到那个string对象中去注意不存换行符。如果输入一开始就是换行符那么所得的结果是个空string。和输入运算符一样getline 也会返回它的流参数。因此既然输入运算符能作为判断的条件也能用getline的结果作为条件。#includeiostream #includestring using std::cout; using std::endl; using std::string; int main() { string line; //每次读入一整行直至到文件末尾 while(getline(cin,line)) coutlineendl; //使用endl结束当前行并刷新显示缓冲区 return 0; }触发geline函数返回的那个换行符实际上被丢弃掉了得到的string对象中并不包含该换行符。