注册 登录
编程论坛 C++教室

读入多个数目的输入,如何结束程序

笨女孩 发布于 2011-09-11 02:27, 870 次点击
程序代码:
#include<iostream>
int main()
{
    int sum=0,val;
    while(std::cin>>val)
        sum+=val;
    std::cout<<"Sum is "<<sum<<std::endl;
    return 0;
}
请问这个程序运行后按什么键结束的?
难道就输入不匹配的值来结束吗?还有其他方法使看上去好看些的吗?
我在Window系统下,按ctrl+z试过了,不行,只是显示“^Z”

[ 本帖最后由 笨女孩 于 2011-9-11 02:45 编辑 ]
14 回复
#2
lucky5635912011-09-11 07:06
consle程序难道还有什么好的方式结束?可以考虑switch
#3
linw12252011-09-11 10:55
输入ctrl+z以后出现Z,再按两次enter建就出现结果了。
#4
笨女孩2011-09-11 11:10
回复 3楼 linw1225
试过了,不行耶。
#5
hoho5682011-09-11 11:59
ctr+z就已经退出来了,怎么可能不行,或者随便输入一个字母,不匹配也可以啊。为啥不行
#6
编程的乐趣2011-09-11 12:03
alt+f4呢
#7
lianjiecuowu2011-09-11 12:38
ctrl+z果断
#8
xg56992011-09-11 13:45
回复 楼主 笨女孩
不一定要按ctrl+z的,通常是按ctrl+z按次回车就好了,但你的程序while循环只检测数字,
检测到非数字会自动退出,所以你不想输入要它结束显示结果随便输入一个英文字母或者符号在回车就OK
#9
ljw9702432011-09-11 15:03
可以按Ctrl+c来结束的.(适用于windows XX)
或则
#include<iostream>
int main()
{
    int sum=0,val;
    while(std::cin>>val&&val!= -1)//当输入-1时可以中断循环,原因自己想.
        sum+=val;
    std::cout<<"Sum is "<<sum<<std::endl;
    return 0;
}
//////////////////可以使用命名空间/////////
#include<iostream>
using namespace std;//使用命名空间就不用输入 std::
int main()
{
    int sum=0,val;
    while(cin>>val&&val!= -1)//当输入-1时可以中断循环,原因自己想.
        sum+=val;
    cout<<"Sum is "<<sum<<endl;
    return 0;
}


[ 本帖最后由 ljw970243 于 2011-9-11 15:06 编辑 ]
#10
ToBeOOP2011-09-11 21:28
这个只要让cin>>val为false就可以了吧...你输入一个字符就可以..当istream作条件的时候如果流是有效的则认为true..无效则认为false...你只要输入一个无效值就可以了..val是int型变量...所以输入一个字符就可以让输入结束了...
#11
ucyan2011-09-11 23:44
vc6.0的问题在其他编译器下按一下Ctrl+Z就可以退出,而在VC6.0中要按两次Ctrl+Z才能退出
#12
jcw081201102011-09-12 14:54
windows中如果你接受的是字符形式就要用ctrl+c+回车;如果是整形那么可以输入一个字母作为终结;
       而在UNIX和linux中就按 ctrl+d (这里不要回车;)
#13
linw12252011-09-14 21:41
回复 4楼 笨女孩
不会吧、我试过了,可以的、
会不会是编程环境不行?
#14
linw12252011-09-14 21:42
回复 楼主 笨女孩
可能是VC版本的问题,这个我不太懂。
#15
蒋小浪2011-09-15 11:21
弱弱的说一句,添个break语句,设置一个结束条件不就是了......你写这个循环,就不满足循环的条件,循环语句应该都有结束循环的混换控制变量的。要么则要有if_break;呵呵,菜鸟打酱油!
1