c++ - 在 for 循环定义中使用 cin

标签 c++

我正在用 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;) 时,它只会永远打印第一个数字。我想知道为什么会这样。是不是循环增量部分缺失?

最佳答案

我认为没有什么好奇怪的;省略 for 循环的“第三”部分意味着 - 除了循环体 - 每次迭代后不会执行任何内容;因此,一旦通过为 a >= 0 提供值进入循环, 只要你不改变 a 的值在循环体中(std::cout << "\t "<<a<<"\n" 不会改变 a ),循环将“永远”运行,始终打印 a的初始值。

关于c++ - 在 for 循环定义中使用 cin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753771/

相关文章:

c++ - 使用 ITK、openCV 和 Qt 的 CMake 程序 -> 如何获得包罗万象的 exe

C++ 常量静态 char* 数组

c++ - 最后未调用后缀运算符

c++ - HttpAddUrl 因 ERROR_SHARING_VIOLATION (32L) 而失败

java - 一个函数的注释是否应该包括它调用的函数完成的工作的描述?

c++ - RVO 何时显示出最大的性能影响?

c++ - wxwidgets 中的按钮 - 不同的行为

c++ - C++14 中的多平台跨线程通信

c++ - 未定义的函数引用 "CashRegister::GetTotalPrice"

c++ - OpenCV imread 默默失败的原因?