【发布时间】:2014-01-19 09:15:30
【问题描述】:
考虑这段代码:
int a;
cin >> a;
输入例如1 或2 时不会停止输入;它会一直等到您按下 ENTER。这是如何运作的?为什么cin 一直等待您的输入,直到您按下 ENTER?
【问题讨论】:
-
如果输入“1”后 I/O 立即停止,那么如何输入 10000 之类的整数?
-
我举个例子。输入可以是“1”、“2”、“1000”或任何你想要的整数。
-
@J.M 你错过了 Brandin 的观点。如果输入是“1000”,但输入操作在每个字符之后结束,那么您的程序将无法将所有四个字符读入单个
int。幸运的是,终端通常默认逐行缓冲,从而避免了这个问题。 -
我会更具体。问题是,为什么在遇到第一个空格后输入没有停止?
-
如果你点击 Ctrl D 也应该停止(并且输入流中没有换行符)