Получение введённой в консоль строки

283
26 февраля 2018, 01:49

Использую для получения строки с консоли

string command;
getline(cin, command);

Однако, если начать набирать строку, а в это время другой поток напишет что-то в консоль через cout, то начнётся полная анархия из твоей строки вперемешку с сообщением из потока.

Как можно исправить эту беду?

Answer 1

Стандартная для C++ консоль для этого не предназначена. Как вы вообще предсавляете одновременный ввод и вывод в одной консоли? Ввод и вывод должен происходить раздельно, по принципу "ввод команды - вывод результата", или же приложение должно только выводить данные, игнорируя ввод. Если приложение выводит данные асинхронно - выводите их в файл, а не в консоль. Или реализуйте простой GUI с раздельными полями ввода и вывода. На том же Qt это легко делается. Если же вам нужно именно консольное приложение - погуглите библиотеки для GUI в консоли.

READ ALSO
Заглавные и строчные буквы

Заглавные и строчные буквы

Здраствуйте, А есть ли функция, с помощью которой я мог бы преобразовать заглавную букву в строчную

196
Исправка кода бинарного дерева

Исправка кода бинарного дерева

Помогите исправить код

176
Как работает live-стрим в YouTube?

Как работает live-стрим в YouTube?

Прямая трансляция пишется на диск и при этом раздаётся в браузер в реальном времени всем, кто её запросил

180
Разворот картинки java

Разворот картинки java

Что то не получается развернуть картинку

253