этом программы?
У меня есть while(true) цикл, он что-то делает, и если послупил определенный ввод с консоли, он что-то другое делает
while (true) { std::string input; std::cin >> input; if (input == "bar") bar(); }
Оно блокируется же
я не понял а как надо
у меня в цикле получет прога кадр с камеры, ищет линию, управляет моторами и тд. И мне нужна возможность экстренной остановки из консоли) Ctrl+c не подходит по определенным причинам
консоль пусть слушается в другом потоке
btw ctrl+c можно нормально обработать и в данном случае кода даже меньше будет
При Ctr+C декструкторы успеют отработать?
Повесь обработчик сигнала std::atomic<bool> stopped = false; ... std::signal(SIGINT, [](int /* signum */) { stopped.store(true); }); while (!stopped.load()) { }
когда в плюсы нормальное асинхронное IO завезут, в т.ч. для файлов и консоли?
Для консоли вряд ли завезут, потому что насколько я знаю на винде его нет
а разве консоль открыта без OVRELAPPED флага?
её ведь можно переоткрыть...
да, помогло, спасибо
Обсуждают сегодня