【问题标题】:how is cin and cout working in the below program?cin 和 cout 如何在以下程序中工作?
【发布时间】:2018-03-20 19:53:57
【问题描述】:

在下面的程序中:

#include <iostream>
using namespace std;

int main()
{
    char ch;
    while (cin >> ch){
        cout << ch; 
    }
   return 0;
}

输入:abc输入
输出:abc

我在键盘上输入的内容只有在我按 Enter 时才会被打印出来,即换行。

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

【问题讨论】:

标签: c++ c++11


【解决方案1】:

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

在 Linux 世界中,这称为canonical mode

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

但是,我不能告诉你怎么做,因为你没有说你的终端是什么。

程序本身有时可能会request that the terminal not use canonical mode(例如,curses 应用程序必须这样做),但实现这一点的方式取决于您的操作系统 - 而且,同样,你的终端是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多