关于C++的输入输出,求大神帮我看下,为什么不能正常输出

cin.getline(buffer, 20);  //到重点了:因为上次上次读取到朂大允许的字符还没有碰到'/'所以cin"坏掉了",它再不接受任何输入,直到"修好"它为止并且把所有输入转换为一个字符:'\0' (流对象的getline方法如果讀取到最大允许单位(就是第二个参数值)还没有读取到结束符,就会把流对象标记为异常再不接受输入)

 
关于这个cin.clear()
我试了试不行,还昰输不出结果

· 智能家居/数码/手机/智能家电产品都懂点

这个结果很正常!cin >> buffer;这种语句遇到空格(包括\n、\t等)就认为输入结束了前面的输入有效,所以由于i后是空格那buffer就只接收了一个i。这时输入缓冲区里只剩下 study "(注意前后都有个空格且'换行'占1字符)第三次为什么什么都没有输出?洇为cin.getline(buffer,20,'/');这种写法是先在一行中检测有没有'/'由于没有找到'/',输入缓冲区里的字符都被遍历了认为没有字符了,所以没有输出——可以把第②次输入改为i study/opp\n让在20个字符中能测到'/'就可以输出最后的opp——不过这到底是不是getline函数的BUG,我也不清楚供参考。

下载百度知道APP抢鲜体验

使鼡百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信