我正在尝试将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上读到了这个例子,但是当我编译这个程序并运行它时,提示会一直等待输入。为什么不输出任何东西?
答案 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;
}