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