gpt4 book ai didi

c++ - Cin 在 while 和 for 循环中被忽略

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:25 26 4
gpt4 key购买 nike

好吧,我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com