抑制回声以从 cin 中取出

Suppress echo to cout from cin

本文关键字:cin 回声      更新时间:2023-10-16

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

有没有办法在用户从 cin 返回后将此回声抑制回 cout,以便我可以用自己的消息覆盖它?

前任:

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

输出如下所示:

Some text I typed
Person: Some text I typed

当用户发送新线路时,第一行会自动回显到终端。这是我想压制的台词。

有什么想法吗?如果可能的话,我试图避免使用任何第三方图书馆。

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