화면에 현재 시간을 표시하는 프로그램을 만들었습니다. 지금하고 싶은 일은 매분마다 그 시간을 업데이트하는 것입니다.C++에서 주 프로그램을 실행하는 동안 1 분이 경과했는지 여부를 백그라운드로 확인하는 방법은 무엇입니까?
dateAndTime now; //created an object of a custom class dateAndTime
cout << "\n\t\t\t\t\t\t" << now.hour() << ':' << now.minute() << endl;
cout << "CASH MANAGER" << "\n";
cout << "1. Add cash" << "\n";
cout << "2. Withdraw cash" << "\n\n";
int ch;
cout << "Enter a number 1 or 2: ";
cin >> ch;
의이 시간은 다음과 같은 과정을 통해 업데이트됩니다 가정 해 봅시다 : 이제
if (time(0) == now.epochTime() + 1)
now.setTime(time(0));
, 내가 뭘 원하는 now.hour() << ':' << now.minute();
로 표시되는 시간이 지연 또는 주를 중단하지 않고 매 분 후 업데이트해야한다는 것입니다 프로그램.
즉, 예를 들어 사용자가 프롬프트 후 몇 분 동안 아무런 입력도 제공하지 않으면 매분마다 시간이 자동으로 업데이트되고 프로세스 전체에서 프로그램은 항상 사용자의 입력을 기다리고 있습니다 (예 : main 프로그램이 평소와 같이 실행 중임). 그렇게 할 방법이 있습니까? 이 작업을 수행하는 데 교차 플랫폼 기술이 없을 수도 있습니다. 그래서 windows os
에 대해이 작업을 수행하려고합니다.
EDIT : 현재 커서 위치 또는 사용자가 입력 한 텍스트 (아직 입력하지 않은)를 복원 한 후에는 업데이트 할 필요가 없습니다.
cin 기반 입력을 사용하여이 작업을 수행 할 수 없습니다. – SergeyA
getche() 함수 ( 라이브러리 함수)를 통해 입력을 받았다고 가정하면 어떻게 할 수 있습니까? –
Nope. 키를 누를 때까지 프로그램을 계속 차단합니다. – SergeyA