C의 비차단 콘솔 입력
최신 C에서는 비차단 콘솔 입력을 통해 프로그램이 실행되는 동안 사용자 명령을 원활하게 처리할 수 있습니다. 계속해서 실행되고 정보가 출력됩니다. 이 기능은 대화형 애플리케이션과 게임에서 종종 중요합니다.
C 11 솔루션:
비차단 콘솔 입력을 구현하는 효과적인 방법 중 하나는 별도의 콘솔 입력을 사용하는 것입니다. 실. 이 접근 방식을 사용하면 백그라운드 스레드가 콘솔의 입력을 모니터링하는 동안 기본 프로그램이 계속 실행될 수 있습니다. 다음 코드 샘플은 C 11을 사용한 이 접근 방식을 보여줍니다.
<code class="cpp">#include <iostream> #include <future> #include <thread> #include <chrono> static std::string getAnswer() { std::string answer; std::cin >> answer; return answer; } int main() { std::chrono::seconds timeout(5); std::cout << "Do you even lift?" << std::endl << std::flush; std::string answer = "maybe"; // default to maybe std::future<std::string> future = std::async(getAnswer); if (future.wait_for(timeout) == std::future_status::ready) answer = future.get(); std::cout << "the answer was: " << answer << std::endl; exit(0); }</code>
설명:
이 예에서 getAnswer 함수는 사용자 입력 검색을 담당합니다. std::async 함수는 getAnswer를 실행하고 결과를 검색하는 데 사용할 수 있는 std::future 객체를 반환하는 별도의 스레드를 시작합니다.
메인 프로그램은 사용자 입력을 기다리는 시간 제한을 5초로 설정합니다. . 사용자가 이 시간 내에 입력을 입력하면 프로그램은 응답 변수를 입력으로 설정합니다. 그렇지 않으면 기본값은 "아마도"입니다.
이 비차단 입력 접근 방식을 통해 프로그램은 사용자 입력에 효율적으로 응답하면서 진행 중인 계산과 출력을 계속할 수 있습니다. 이는 대화형 C 애플리케이션을 구축하는 강력한 기술입니다.
위 내용은 대화형 애플리케이션을 위해 C에서 비차단 콘솔 입력을 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!