aditya_parasar Ответов: 1

Как читать iinput во время выполнения бесконечного цикла?


я хочу принимать входные данные, пока бесконечный цикл выполняется в C++ .но я не хочу останавливать свою программу .что же мне делать?

Что я уже пробовал:

пожалуйста, помогите мне!!!!!! я не хочу использовать функцию getch . если это возможно, то plzz скажите мне, как я могу решить эту проблему с помощью функции kbhit.

saide_a

Как сказал OriginalGriff, я думаю, что решение заключается в использовании threading (pthread).

1 Ответов

Рейтинг:
1

OriginalGriff

kbhit если и не обязательно так, то, во-первых, он работает не во всех средах - kbhit | Microsoft Docs[^]:

Цитата:
Этот API нельзя использовать в приложениях, которые выполняются в среде выполнения Windows. Дополнительные сведения см. В разделе функции CRT, которые не поддерживаются с ключом /ZW.

Даже если вы можете использовать его, он обесценивается, и вам понадобится _kbhit | Майкрософт документы[^] вместо.

Вы используете его, вызывая его через определенные промежутки времени, когда вы идете вокруг своего цикла, и если это правда, делая что-то (например, читая Символ), что может заставить вас выйти из цикла.

Но это плохое решение: использовать кувалду, чтобы расколоть орех.
То, что вы должны делать, - это запускать свою длительную задачу в отдельном потоке, чтобы ваш пользовательский интерфейс- независимо от того, в какой среде пользовательского интерфейса вы работаете - не был "заблокирован" циклом.
Посмотрите в документации к вашей системе для "threading" и посмотрите, можете ли вы найти некоторые примеры - я бы указал вам на некоторые, но я понятия не имею, в какой среде вы пытаетесь работать!