cin、getline的坑

cin、scanf 读取一个数据后,会遗留一个‘\n’在后面

如果我们接着使用getline,就会把上面cin、scanf遗留下来的‘\n’读入。因为getline遇到‘\n’会读入结束,所以会读到一个空字符串

如果我们需要在cin、scanf紧接着用getline,那么我们需要在cin、scanf后面加上一个getchar(),吃掉'\n'

cin>>n;
getchar();
getline(cin,str);

在循环使用getline的时候,不需要使用getchar(),因为getline会自动帮我们吃掉‘\n’

while(n--){
    getline(cin,str);
}

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页