好的,所以我四处浏览并在 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/