P78使用getline读取一整行

来源:互联网 发布:西安朝阳软件培训中心 编辑:程序博客网 时间:2024/06/05 09:22
#include<string>#include<iostream>using namespace std;using std::string;using std::cin;using std::cout;using std::endl;int main( ){string line;while (getline(cin,line))cout<<line<<endl;return 0;}
如果没有加

using namespace std;

就会显示getline 未定义的变量

不知道为什么这样?

操作页面:


注意:有时我们希望最终的字符串中保留空格符,这时应用getline,getline函数从给定的输入流中读入内容,知道遇到换行符(注意换行符也被读进来了),然后将所读的内容存入到string对象中(注意不存换行符)。getline只要一遇到换行符就结束读取操作并返回结果,哪怕输入的一开始就是换行符。如果一开始输入换行符,则所得结果为空string.

因为line中不包含换行符,所以手动地加上换行操作符。和往常一样,使用endl结束当前行并刷新显示缓冲区。

note:出发getline函数返回的那个换行符实际上被抛弃了,得到的string对象中并不包含该换行符

让我无法明白的是为什么输入输出之间隔着好几行空格?