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

while(cin>>N)
{
}
cout<<N;
为什么不能输出N
而是要无限输入?
输入空格也不能结束while 循环
如果要按回车直接结束循环
要怎么做?

#include "iostream"
using namespace std;
int main()
{
int N;
while(cin>>N)
{
}
cout<<N;
return 0;
}
这样就可以
将N定义为int类型,只要输入非数字字符,就会结束循环

只要输入类型和N匹配,那么cin就返回真,while循环就会一直继续下去
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-27
1、运行到这句时,等待用户输入。
2、如果用户输入的n的值不为0,则进入循环。
3、如果用户输入的n的值为0,则结果循环。
第2个回答  2020-03-23
EOF是一个宏,使用int型的变量去保存输入值,与之比较。。。。使用char值保存EOF输入值会溢出。。。一般EOF的值是-1
表示一个流读结束了。
对于一个文件来说,读尽最后一个字节算做结束。
对于标准输入(也就是一般的键盘输入),需要人为的产生一个EOF,告诉系统输入结束了。Unix/Linux下一般使用Ctrl+d,Dos/Windows下是Ctrl+z
注意:
还要加一个回车
……
我用你的程序试了一遍没有问题,按
Ctrl+z
组合键;
另外既然包含了iostream,输出换行可以使用
cout<

追问:

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

追答:

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

评论
0

0

加载更多
第3个回答  2007-11-03
while(cin>>N)
{
if(N==13)break;//N是整型的
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网