朝歌 发表于 2014-3-27 14:00:41

小白问题,书上和自己运行结果不同

# include <iostream>
int main()
{
        int sum = 0, value = 0;
        while (std::cin >> value)
        {
                sum += value;
        }
        std::cout << "the sum is" << sum;
        std::cout << std::endl;
        return 0;
}
书上说:
如果我们输入3 4 5 6
则程序会输出
the sum is 18
为啥我按了enter之后没反应呢?但是我输入3 4 5 6 v(任意一个字母)之后就会输出结果了,我想知道是书上写错了吗==太顽固,求解答求帮助,谢谢大家了


蒲公英花开 发表于 2014-3-28 07:46:53

std::cin >> value 这个就是循环条件,只不过运行之后需要在输入结束之后加一个文件结束符(按ctrl+z),然后再回车,才能出结果。貌似你的编译器的解释是 再循环结构里只要是数字就一直循环,除非遇到非数字的才会结束循环,所以当你输入字母时才会输出结果

请问饿瑞 发表于 2014-3-28 16:05:27

好难的样子。。。。

抢地主 发表于 2014-3-28 17:04:36

俺回复来求解了。。。
页: [1]
查看完整版本: 小白问题,书上和自己运行结果不同