好吧,我是 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;
}
最佳答案
该程序可以运行,只是运行方式与您预期的不同!
它希望您继续输入由空格分隔的数字,然后给出文件结尾(Windows 上的 ctrl-Z,Unix 上的空行上的 ctrl-d)或其他无效输入,以便 cin
进入失败状态。
当 cin
进入失败状态时,它会为 for
循环提供 false(由于使用重载的 bool 转换运算符隐式转换为 bool),然后结束。然后你的程序打印它们的总和。如果您没有设法输入任何数字,那么它会打印 0,因为这是 sum
的初始化值。
关于c++ - Cin 在 while 和 for 循环中被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39005039/