sylowpppppp 2016-02-09 15:36 采纳率: 0%
浏览 1828
已采纳

小白问c++中关于getline函数的问题

图片说明
问题如图上的注释,为什么一定要在循环体之前加一个getline函数才能让vector中第一个元素读入字符串,否则vector中第一元素就是空字符串?
#include
#include
#include

using namespace std;

int main()
{ int num;
cin>>num; //num is the number of telephone numbers to be read

string line;
vector<string> numlist;
getline(cin,line);  //为什么这里一定要加一行getline, 不加的话numlist第一个元素总是空字串 
for(int i=1;i<=num;i++)
{   
    getline(cin,line);
    numlist.push_back(line);
}

return 0;
}

在这里小白先谢谢各位大神前辈了

  • 写回答

6条回答 默认 最新

  • threenewbee 2016-02-09 23:21
    关注

    和你的输入有关,你输入的时候如果是输入一个变量按一个回车的话,那么需要getline吃掉回车。不然cin读取下一个,读取不到变量,读取的是那个回车。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿