"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 대화형 애플리케이션을 위해 C++에서 비차단 콘솔 입력을 어떻게 구현할 수 있습니까?

대화형 애플리케이션을 위해 C++에서 비차단 콘솔 입력을 어떻게 구현할 수 있습니까?

2024-11-08에 게시됨
검색:466

How can I implement non-blocking console input in C   for interactive applications?

C의 비차단 콘솔 입력

현대 C에서는 비차단 콘솔 입력을 통해 프로그램이 실행되는 동안 사용자 명령을 원활하게 처리할 수 있습니다. 계속해서 실행되고 정보가 출력됩니다. 이 기능은 대화형 애플리케이션과 게임에서 종종 중요합니다.

C 11 해결 방법:

비차단 콘솔 입력을 구현하는 효과적인 방법 중 하나는 별도의 콘솔 입력을 사용하는 것입니다. 실. 이 접근 방식을 사용하면 백그라운드 스레드가 콘솔의 입력을 모니터링하는 동안 기본 프로그램이 계속 실행될 수 있습니다. 다음 코드 샘플은 C 11을 사용하는 이 접근 방식을 보여줍니다.

#include 
#include 
#include 
#include 

static std::string getAnswer()
{
    std::string answer;
    std::cin >> answer;
    return answer;
}

int main()
{
    std::chrono::seconds timeout(5);
    std::cout  future = std::async(getAnswer);

    if (future.wait_for(timeout) == std::future_status::ready)
        answer = future.get();

    std::cout 

설명:

이 예에서 getAnswer 함수는 사용자 입력 검색을 담당합니다. std::async 함수는 getAnswer를 실행하고 결과를 검색하는 데 사용할 수 있는 std::future 객체를 반환하는 별도의 스레드를 시작합니다.

메인 프로그램은 사용자 입력을 기다리는 시간 제한을 5초로 설정합니다. . 사용자가 이 시간 내에 입력을 입력하면 프로그램은 응답 변수를 입력으로 설정합니다. 그렇지 않으면 기본값은 "아마도"입니다.

이 비차단 입력 접근 방식을 사용하면 프로그램은 사용자 입력에 효율적으로 응답하면서 진행 중인 계산과 출력을 계속할 수 있습니다. 이는 대화형 C 애플리케이션을 구축하기 위한 강력한 기술입니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3