C 프로그램을 위한 비차단 콘솔 입력 전략
현대 프로그래밍에서는 프로그램을 실행하는 동안 실시간 사용자 명령을 처리하는 것이 바람직한 경우가 많습니다. 프로그램은 지속적으로 실행되고 정보를 출력합니다. 비차단 콘솔 입력은 이 기능을 달성하는 데 중요합니다. 이 기사에서는 C에서 비차단 콘솔 입력을 효과적으로 구현하기 위한 다양한 기술을 살펴봅니다.
C 11 및 Future를 사용한 비동기 입력
한 가지 접근 방식은 C 11의 예:
#include
#include
#include
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 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);
}
기타 고려 사항:
위 외에도 방법을 사용하는 경우 개발자는 다음 사용을 고려할 수도 있습니다.
-
비차단 입력 라이브러리: Boost.Asio 및 libevent와 같은 라이브러리는 전용 비차단 입력 기능을 제공합니다.
- 플랫폼별 방법: 다양한 운영 체제는 비차단 입력을 위한 시스템 호출을 제공합니다.
접근 방식 선택은 플랫폼 호환성, 성능 요구 사항, 작업 용이성과 같은 요소에 따라 달라집니다. 구현. 다양한 옵션을 탐색하면 특정 프로젝트 요구 사항에 가장 적합한 솔루션을 선택할 수 있습니다.
위 내용은 C 프로그램이 실행을 차단하지 않고 어떻게 사용자 입력을 받아들일 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!