禁止回声从cin退出

时间:2019-09-23 21:12:58

标签: c++ input

我正在尝试创建一个非常简单的聊天应用程序,用户在其中键入一些内容(cin接收),然后手动回显其输出,但是在用户按下键盘上的Enter键后,cin自然会打印到控制台。

在用户从cin返回后,是否有一种方法可以抑制此回声到cout,以便我可以用自己的消息覆盖它?

例如:

int main() 
{
    string str;
    while(true) 
    {
         getline(cin, str)
         cout << "Person: " << str << endl;
    }
}

输出看起来像这样:

Some text I typed
Person: Some text I typed

当用户发送新行时,第一行会自动回显到终端中。这是我要禁止的行。

有什么想法吗?如果可能,我会尽量避免使用任何第三人称库。

1 个答案:

答案 0 :(得分:1)

据我所知,如果不使用任何第三方库,在标准C ++上是不可能的。如果您愿意使用特定于操作系统的库,那么this linkthis one可能会有所帮助。不幸的是,这不是本机C ++中的选项,因为要由操作系统来决定如何处理控制台输出(因此,为什么您需要特定于操作系统的解决方案来处理高级控制台内容(例如颜色)。