C++ 关于while(cin>>n)的问题

while(cin>>N){}cout<<N;为什么不能输出N而是要无限输入?输入空格也不能结束while循环如果要按回车直接结束循环要怎么做?... while(cin>>N)
{
}
cout<<N;
为什么不能输出N
而是要无限输入?
输入空格也不能结束while 循环
如果要按回车直接结束循环
要怎么做?
展开
 我来答
jackys2007
2007-11-03 · TA获得超过1913个赞
知道小有建树答主
回答量:828
采纳率:100%
帮助的人:925万
展开全部
#include "iostream"
using namespace std;
int main()
{
int N;
while(cin>>N)
{
}
cout<<N;
return 0;
}
这样就可以
将N定义为int类型,只要输入非数字字符,就会结束循环

只要输入类型和N匹配,那么cin就返回真,while循环就会一直继续下去
chinaboyzyq
2015-12-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3235万
展开全部
1、运行到这句时,等待用户输入。
2、如果用户输入的n的值不为0,则进入循环。
3、如果用户输入的n的值为0,则结果循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晁兰英衡月
2020-03-23 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:828万
展开全部
EOF是一个宏,使用int型的变量去保存输入值,与之比较。。。。使用char值保存EOF输入值会溢出。。。一般EOF的值是-1
表示一个流读结束了。
对于一个文件来说,读尽最后一个字节算做结束。
对于标准输入(也就是一般的键盘输入),需要人为的产生一个EOF,告诉系统输入结束了。Unix/Linux下一般使用Ctrl+d,Dos/Windows下是Ctrl+z
注意:
还要加一个回车
……
我用你的程序试了一遍没有问题,按
Ctrl+z
组合键;
另外既然包含了iostream,输出换行可以使用
cout<

追问:

老师说用noskipws和skipws时eof不行,得用ctrl+z才能退出循环,难道是他讲错了?

追答:

http://msdn.microsoft.com/zh-cn/library/98bsd5x4(v=VS.90).aspx
http://msdn.microsoft.com/zh-cn/library/ttf4txbf(v=VS.90).aspx
什么叫EOF不行?反正你这样写是对的,同时需要手动生成一个EOF输入值的时候,按照我上面说的,ctrl
+
z,等价于输入一个EOF,会终止循环。
你老师的具体原话是什么。。。。我不能再不清楚情况的时候给你解答~~怕误导你

评论
0

0

加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxy871004
2007-11-03
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
while(cin>>N)
{
if(N==13)break;//N是整型的
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式