C++-关于c++中getline的问题

发布于 2017-07-31 15:44:39 字数 780 浏览 1197 评论 2

请输入图片描述getline是string类对象的成员函数,属于string IO 操作。用于读取整行文本。
getline(cin,str); //cin:输入流;str:string对象
getline函数从输入流的下一行读取,并保存读取的内容到str中,但不包括换行符。getline 函数将 istream 参数作为返回值,和输入操作符一样也把它用作判断条件。
例:#include <string>
#include <iostream>
using namespace std;
int main()
{
string line;
while(getline(cin,line))
cout<<line<<endl;
return 0;
}
结果: 输入 line1 ----回车换行 显示为空
输入 line2 ----回车换行 显示 line1
输入 line3 ----回车换行 显示 line2 ----(以此类推)

在百度上看到这么个例子,为什么我输入line1————回车换行 是显示line1呢?

既然这样子,那么关于getline函数从输入流的下一行读取是什么意思?是指输入第二行才开始读取第一行吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2017-09-14 04:41:56 2 楼

我试验你的代码没有问题啊,我用的coed::blocks+G++

想挽留 2017-08-21 16:35:12 1 楼

首先,有一组getline是ostream的成员函数,也有一个用于接收string的自由函数(你使用的),不是string的成员函数。

另外用g++和vs2012都测试了你的代码,没有出现你说的情况,一切正常。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击“接受”或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。