学习 Essential C++的同学们注意了!
以下是Essential C++练习1.6的答案,但是运行或好像不能从while循环退出
请指教。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec;
int ival;
while (cin>>ival) //here
ivec.push_back(ival);
for (int sum=0,ix=0;ix<ivec.size();++ix)
sum+=ivec[ix];
int average =sum/ivec.size();
cout<<"Sum of"<<ivec.size()<<"elements:"<<sum
<<".Average:"<<average<<endl;
return 0;
}
问题点数:20、回复次数:24Top
1 楼zhwangquan(聪明的大傻瓜)回复于 2002-05-06 20:38:28 得分 0
不可能呀,输入非数字字符加回车肯定会出来Top
2 楼zhuzhu830829(猪猪)回复于 2002-05-06 20:38:29 得分 0
有回车,while (cin>>ival),什么时侯才为false?Top
3 楼zhwangquan(聪明的大傻瓜)回复于 2002-05-06 20:42:38 得分 0
不可能为false但会产生异常CArchiveException 即throw( CArchiveException );,如没有catch就会继续执行后面的程序Top
4 楼microant(源代码蚁)回复于 2002-05-06 20:47:25 得分 0
输入0或者非数字字符然后回车就是false。直接输入回车只会要求重新输入而已。Top
5 楼zhuzhu830829(猪猪)回复于 2002-05-06 20:53:07 得分 0
我的操作系统是XP,
——————————————————————
不可能呀,输入非数字字符加回车肯定会出来
——————————————————————
可是我按了回车还是继续Top
6 楼littlebee(小蜜蜂)回复于 2002-05-06 20:59:05 得分 1
好像是有问题,至少在VC中是这样!!!Top
7 楼tinymole()回复于 2002-05-06 21:00:49 得分 4
输入0会是false吗?应该是非int型的会退出吧。
但不输入直接按回车是要求重新输入,这样为什么不是非int型?Top
8 楼zhwangquan(聪明的大傻瓜)回复于 2002-05-06 21:01:27 得分 0
但我的没问题Top
9 楼tinymole()回复于 2002-05-06 21:01:50 得分 0
这个程序我刚copy到vc上运行没问题啊Top
10 楼microant(源代码蚁)回复于 2002-05-06 21:05:12 得分 0
输入0不是false的……嗯,残念,犯了想当然的错误,忘记了返回的类型了……Top
11 楼zhuzhu830829(猪猪)回复于 2002-05-06 21:05:14 得分 0
我用的是VC.NET+windows XP不知有没有关系Top
12 楼zhwangquan(聪明的大傻瓜)回复于 2002-05-06 21:13:50 得分 0
可能有Top
13 楼earthharp(我老子是土匪)回复于 2002-05-06 21:22:51 得分 0
^zTop
14 楼littlebee(小蜜蜂)回复于 2002-05-06 21:28:58 得分 0
我觉得 zhwangquan(横空出世) 说得有道理,但若第一次就输入字符程序就会出错
这样的程序还是少一点为妙!!!Top
15 楼xhb9381(荒漠狼)回复于 2002-05-06 21:33:58 得分 0
uupTop
16 楼caoxin()回复于 2002-05-06 21:52:21 得分 0
又是CIN输入字符的问题,前面的帖子已讨论过了Top
17 楼zhuzhu830829(猪猪)回复于 2002-05-06 22:08:46 得分 0
哪一贴?Top
18 楼caoxin()回复于 2002-05-08 20:26:38 得分 0
<<高分,向C/C++高手求教!>>Top
19 楼wangjingbin1980(呢不知道)回复于 2002-05-08 22:01:43 得分 5
在windows系统下输入^z,在unix下输入^tTop
20 楼codewarrior(会思考的草)回复于 2002-05-09 01:06:10 得分 5
Stan B.Lippman以前是AT&T的程序员,属于UNIX流派,他们用的编译器可能和VC有不兼容之处,在他的《Inside the C++ Object Model》中也有同样的文字,侯捷在那个地方特意作了说明,说在VC下不能的出正确结果。这可能和VC的编译器优化有关。Top
21 楼zhuzhu830829(猪猪)回复于 2002-05-11 09:56:20 得分 0
哈哈。解决了。
按ctrl-D 或F2Top
22 楼zhuzhu830829(猪猪)回复于 2002-05-11 09:56:47 得分 0
感谢各位的帮助。Top




