CIN 和 COUT 如何在以下程序中工作

how is cin and cout working in the below program?

本文关键字:程序 工作 COUT CIN      更新时间:2023-10-16

在下面的程序中:

#include <iostream>
using namespace std;
int main()
{
    char ch;
    while (cin >> ch){
        cout << ch; 
    }
   return 0;
}

输入 : ABC输入
输出 : ABC

我在键盘上键入的任何内容仅在我按 Enter 即换行符时打印。

为什么不是同时打印每个字符?这里的哪个语句将换行符作为输入并打印到目前为止打印的所有字符?

你的终端不会在按下每个新字符时发送;它会等待你提供一整行,然后一次性发送所有字符。

在 Linux 世界中,这被称为规范模式

如果您希望击键结果立即发送到终端所连接的任何位置,请关闭规范模式。

但是,我无法告诉您如何做到这一点,因为您没有说您的终端是什么。

有时程序本身可能会请求终端不使用规范模式(例如,curses 应用程序必须这样做(,但实现此目的的方式取决于您的操作系统 - 以及您的终端是什么。