好吧我是C ++的新手,所以我在Lippman的 C ++ Primer 5th Edition 中做了一些练习,该功能甚至从未提示用户输入。我非常沮丧,因为我生产的代码都没有工作,也没有从答案中获得。这只在编译和运行时产生“0”。任何帮助表示赞赏。在x64 Mac上编译。
#include <iostream>
int main()
{
int sum = 0;
for (int val; std::cin >> val; sum += val);
std::cout << sum << std::endl;
return 0;
}
答案 0 :(得分:1)
该程序有效,它的工作方式与您的预期不同!
它希望你继续输入由空格分隔的数字,然后给出文件结尾(Windows上的ctrl-Z,空行的Unix上的ctrl-d)或其他无效输入,以便cin
去失败状态。
当cin
进入失败状态时,它会给for
循环赋予错误(由于使用重载的bool强制转换操作符隐式强制转换为bool),结束。然后你的程序将它们打印出来。如果你没有设法输入任何数字,那么它会打印0,因为sum
被初始化为。