2017-04-20 3 views
-2

메인 기능에서 루프를 시도하면 모든 것을 멈추게됩니다. (심지어 마우스도)C++ 응용 프로그램을 중지하지 않고 Win32 콘솔 응용 프로그램에서 시계를 만드는 방법?

콘솔 응용 프로그램에서 응용 프로그램을 중지하지 않고 변경 가능한 문자열을 만드는 방법은 무엇입니까?

int status; 
string str; 
while (true) 
{ 
    if (status != 1) 
    { 
     str = "i'm sleeping now"; 
    } 
    else if (status == 1) 
    { 
     str = "i'm ready for working!"; 
    } 
    cout << str; 
} 
+1

왜 시계가 루프해야합니까? 매 초 또는 매분마다 발사하도록 설정된 타이머를 사용하십시오. 타이머가 작동하면 시계 디스플레이를 업데이트하십시오. 더 많은 도움이 필요하면 실제 코드를 게시하십시오. –

답변

0

콘솔의 한 위치에 표시하려면 커서 위치 지정과 같은 일부 OS 관련 항목이 필요합니다. 예를 들어 새로운 시간대로 새 줄을 입력하기 만하면됩니다. 매 순간.

출력의 실제 타이밍은 여러 가지 방법으로 수행 할 수 있지만 거의 모든 프로그램에서 자체 이벤트 루프를 유지한다고 가정합니다 (입력시 차단되는 일반적인 콘솔 응용 프로그램과는 대조적 임). 콘솔에서 수행 할 수 있으며 더 복잡한 설정이 필요합니다.

입력이 전혀 필요하지 않으면 시간이 다가올 때까지 기다리거나 잠을 잘 수 있습니다. 그것은 모두 귀하의 프로그램이 무엇을 해야하는지 외에도 출력 시간에 따라 다릅니다.

간단히 콘솔 앱이 아닌 콘솔 앱을 제작하면 훨씬 간단합니다.

+0

하아! 나는 콘솔 앱보다 비 콘솔 앱에서 "훨씬 더 직설적"일 수 있다고 상상하지 못했습니다. 나는 그것이 사실 일지조차 확신하지 못한다. 윈도우 시스템 *에서는 이벤트 루프가 필요하지만 간단하거나 간단하지는 않습니다. –

+0

@CodyGray 사용자와 상호 작용할 수있는 더 많은 방법을 얻는 것만으로도 더 많은 도구를 사용할 수 있습니다. 초보자에게는 더 많은 도구를 제공하는 것이 더 간단하지는 않지만 경험이 풍부한 사람에게 도움이 될 수 있습니다. 게다가, 당신을위한 OS 특정 이벤트 루프를 추상화하는 프레임 워크가 있습니다. 결국 적은 코드로 끝낼 수 있습니다. –