cin 输入可以有多大

How large can cin input be?

本文关键字:输入 cin      更新时间:2023-10-16

请考虑以下代码:

int a;
cin >> a;
输入不会

在你输入例如12时停止;它会等到你按回车键。这是如何工作的?为什么cin等待您的输入,直到您按 ENTER 键?

您的运行时环境和终端控制原始键盘输入。通常,它们仅将输入逐行发送到应用程序,以允许编辑。如果您希望终端立即向您发送键盘输入,则必须以依赖于平台的方式与终端交谈。

(这通常称为"原始"模式,而不是通常的行缓冲"烹饪"模式。请注意,烘焙模式还处理退格、删除和光标移动等等。

cin后面只有一个缓冲区,它被输入填满,然后在使用提取运算符(>>)时被清空。何时以及如何填满取决于平台。例如,在类Unix系统中,输入终端处于规范或非规范模式。在规范模式下,输入是逐行可用的。在非规范模式下,它立即可用。可以在这些模式之间切换(检查man termios)。

标准输入缓冲区的实际大小由实现定义。