2016-12-23 7 views
1

画面に現在の時刻を表示するプログラムを作成しました。私が今やりたいことは、1分ごとにその時間を更新することです。メインプログラムの実行中に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();として表示される時間が遅延またはメインを中断することなく、毎分後に更新する必要がありますということですプログラム。

つまり、プロンプトが表示されてから数分間何も入力しないと、1分後に自動的に更新され、プロセス全体を通してユーザーの入力を常に待っていますプログラムは通常どおり実行されます)。そうする方法はありますか?私は、これを行うためのクロスプラットフォーム技術がないかもしれないことを知っています。だから私はちょうどwindows osのためにこれをしたいです。

EDIT:現在のカーソル位置またはユーザーが書いたテキスト(まだ入力されていない)を復元する必要はありません。

+0

cinベースの入力を使用してこれを行うことはできません。 – SergeyA

+0

getche()関数(ライブラリ関数)を介して入力を受け取り、それは可能ですか? –

+0

Nope。キーが押されるまでプログラムはブロックされます。 – SergeyA

答えて

1

機能は、alarm()機能を使用できます。機能が終了すると、信号はSIGALRMに送信されます。

アプリケーションには、その信号用のシグナルハンドラが必要です。

関連する問題