Использую для получения строки с консоли
string command;
getline(cin, command);
Однако, если начать набирать строку, а в это время другой поток напишет что-то в консоль через cout, то начнётся полная анархия из твоей строки вперемешку с сообщением из потока.
Как можно исправить эту беду?
Стандартная для C++ консоль для этого не предназначена. Как вы вообще предсавляете одновременный ввод и вывод в одной консоли? Ввод и вывод должен происходить раздельно, по принципу "ввод команды - вывод результата", или же приложение должно только выводить данные, игнорируя ввод. Если приложение выводит данные асинхронно - выводите их в файл, а не в консоль. Или реализуйте простой GUI с раздельными полями ввода и вывода. На том же Qt это легко делается. Если же вам нужно именно консольное приложение - погуглите библиотеки для GUI в консоли.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости