3

N数秒でウィンドウをシャットダウンするプログラムを書きたいです。私が知っているウィンドウをシャットダウンする最も簡単な方法はsystem()

shutdown -s -t XXXX

ここで、XXXXは指定された時間です。ただしsystem()、パラメータとして文字列のみを受け入れます。system("shutdown -s -t 7200")ユーザーが7200を入力した場所を呼び出すにはどうすればよいですか?

4

2 に答える 2

1

scanf()とを見てくださいsprintf()

#define MAX_LENGTH 50
/* ... */
int shutdownTime;
char shutdownCall[MAX_LENGTH];

scanf("%d", &shutdownTime);
if (shutdownTime < 0) 
    return NEGATIVE_TIME_ERROR;
sprintf(shutdownCall, "shutdown -s -t %d", shutdownTime);
system(shutdownCall);
于 2012-04-03T20:17:27.403 に答える
1

代わりに使用InitiateSystemShutdownします。またはを使用できますが、どちらも元の質問で尋ねられた遅延を直接サポートしていないため、その遅延を行うコードを追加する必要があります (たとえば、 を使用)。それは確かに可能ですが、見返りとして何も達成せずに余分な作業が発生します。ExitWindowsExitWindowsExSetTimer

の使用を主張する場合はsystemsprintf(または同様のもの) を使用して、に渡す文字列を作成できますsystem

char buffer[256];

sprintf(buffer, "shutdown -s -t %d", seconds);
system(buffer);
于 2012-04-03T20:14:01.600 に答える