【问题标题】:std::cin not working inside of a for loop [closed]std::cin 在 for 循环中不起作用[关闭]
【发布时间】:2020-08-03 05:13:28
【问题描述】:

我在 Windows 上使用 mingw。也许我很笨或者这是一个错误,但是 for 循环内的 cins 只是不起作用。 这是我能想象到的最好的代码 sn-p 来演示这个问题......

#include <iostream>
#include <string>

int main()
{
  std::string x;
  for (int i; i < 10; i++)
  {
    char y;
    std::cin >> y;
    x += y;
  }
  std::cout << x;
}

如果我编译并运行,我不会收到输入提示。它只是运行低谷。我想这可能是输入缓冲区的问题,但我发送了很多 cin.ignores 垃圾邮件,所以这不是问题。

【问题讨论】:

  • 你需要初始化i,否则读取它是UB。
  • int i 等于...什么?

标签: c++ gcc mingw


【解决方案1】:

您的 for 循环没有初始化 i,因此当您将其与 10 进行比较时,您就有了 UB。相反,您应该像这样初始化i

for (int i = 0; i < 10; ++i)

假设您希望循环执行10 次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多