首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[c++]while(cin.get(str,size).get())...为什么无限循环,而不是退出,如果我给一个空行

[c++]while(cin.get(str,size).get())...为什么无限循环,而不是退出,如果我给一个空行
EN

Stack Overflow用户
提问于 2013-12-11 12:51:54
回答 1查看 86关注 0票数 0

这是一个c++问题。

代码语言:javascript
复制
char str[10];
while(cin.get(str,10).get())
    ...
cin.clear();

我希望当我只给出enter键时,while循环会结束,因为cin.get(str,size)遇到空行时会失败。但是,当我在aim后面添加一个.get()来读取以下代码时,\n当我给出一个空行时,while循环就会继续循环。是否是.get()导致判断为真,而不是cin.get(str,size)的判断为假?

EN

回答 1

Stack Overflow用户

发布于 2013-12-11 13:04:19

cin.get(str,10)从流中提取字符,并将它们作为c字符串存储在str中,直到提取到9个字符或遇到分隔字符,而不是“获取10,如果不能,则失败,因为该行已结束”。

这基本上不会“失败”,直到你到达文件的末尾。您必须捕获这条线并分别测试它的长度(可能不在同一个表达式中)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20510782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档