gpt4 book ai didi

c++ - cin 到 vector 输入无限循环。为什么?

转载 作者:行者123 更新时间:2023-11-30 05:14:47 25 4
gpt4 key购买 nike

好的,所以我四处浏览并在 hackerrank 上找到了 bubble sort 的以下实现.

现在,这对输入使用以下 while 循环:

while (cin >> t)

它在 hackerrank 网站上执行,但不在我的 IDE(CLion,如您所见)中执行,即该程序无限期地继续接受输入。我还发现网站上的许多帖子在将输入输入到 vector 时也使用或建议了类似的代码。我目前正在使用 stackoverflow 帖子中建议的其他方法,有些方法不太有效。我的问题是

  • 为什么程序会无限期地接受输入?
  • 是否存在违反任何条件/标志之类的条件?
  • 它在 C++14 或类似的东西中被删除了吗?

最佳答案

通常,当您运行一个可执行文件时,它的标准输入被绑定(bind)到一些交互媒体(终端或控制台)。这种媒体通常没有和结尾,除非您明确发送文件结尾(例如在 Linux 上使用 Ctrl+D)。所以循环永远不会终止,因为读取总是会阻塞并等待更多输入。

如果您将可执行文件的标准输出重定向为从文件中读取,则情况会有所不同。在典型的 shell 中,这就是您使用 < 实现的结果:

myprog < file.txt

这样,程序的标准输入将是文件的文件描述符,当您读取到文件末尾时,从中读取通常会发出 EOF 信号。

关于c++ - cin 到 vector 输入无限循环。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43298671/

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