关于cpp的简单求和程序

时间:2015-01-10 15:07:37

标签: c++ c++11 cin eof

我正在尝试将c ++程序与用户输入的元素相加:

#include <iostream>

int main(){
        int sum = 0, value = 0;
        // read until end-of-file, calculating a running total of all values read
        while (std::cin >> value){
                sum += value;
        }
        std::cout << "Sum is: " << sum << std::endl;
        return 0;
}

我在c ++ primer上读到了这个例子,但是当我编译这个程序并运行它时,提示会一直等待输入。为什么不输出任何东西?

2 个答案:

答案 0 :(得分:6)

std::cin一直等待输入,直到遇到EOF(文件结束)。在终端(Linux)中运行它时,只需按 Ctrl + D 即可生成EOF。如果您是Windows用户,请使用 Ctrl + Z

答案 1 :(得分:4)

请在值上设置limit并在while循环中进行检查。

让我添加一些代码来说明......

#include <iostream>

int main(){
        int sum = 0, value = 0, limit=5, entries=0;
        std::cout << "Enter "<< limit << " digits:"; 
        // read until end-of-file, calculating a running total of all values read
        while ((std::cin >> value) && (entries < limit) ){
                sum += value;
                entries++;
        }
        std::cout << "Sum is: " << sum << std::endl;
        return 0;
}

另一种选择是获取用户将要提供的条目数;

#include <iostream>

int main(){
        int sum = 0, value = 0, limit=0, entries=0;
        std::cout << "Enter limit:";
        std::cin >> limit;
        // read until end-of-file, calculating a running total of all values read
        while ((std::cin >> value) && (entries < limit) ){
                sum += value;
                entries++;
        }
        std::cout << "Sum is: " << sum << std::endl;
        return 0;
}