【发布时间】:2017-01-19 23:47:30
【问题描述】:
我正在创建一个在 for 循环体中使用 std::cin 的简单程序。
#include <iostream>
int main()
{
float a = 0;
for (std::cin >> a; a >= 0;std::cin >> a) {
std::cout << "\t "<<a<<"\n";
}
return 0;
}
这个程序在a 中取值并打印它,直到你输入一个负数。
但是当我将for 循环定义修改为for(std::cin >> a; a >= 0;) 时,它只会永远打印第一个数字。我想知道为什么会这样。是因为缺少循环增量部分吗?
【问题讨论】:
-
因为你去掉了暂停程序等待用户输入新号码的部分。
-
cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/loop.html 请参阅“翻译 for 循环”
-
为什么不直接使用while循环呢?然后您可以在循环结束时获取用户输入并检查他们是否输入了哨兵值 - 如果没有,它将再次运行。
-
当然。但我的问题是为什么
for(std::cin >> a; a >= 0;)不起作用
标签: c++