誰かがcでカウントを遅らせるかバックカウントする方法を教えてもらえますか?私は1秒後に1と2を書くことを意味します。私が知っている唯一の方法は
include<windows.h>
Sleep( 1000 /* milliseconds */ );
誰かがこれを行う別の方法を教えてもらえますか?(私はウィンドウズ8を持っています)
Standard C89 に限定されている場合
#include <stdio.h>
#include <time.h>
int main(void) {
time_t t;
/* wait until the Standard clock ticks */
t = time(0);
while (time(0) == t) /* void */;
/* print 1 */
puts("1");
/* wait until the Standard clock ticks again */
t = time(0);
while (time(0) == t) /* void */;
/* print 2 */
puts("2");
return 0;
}
POSIX を使用できる場合: nanosleep()を使用します。
thrd_sleep
C11 で利用可能な を使用して、その単純なラッパーを作成できます。
void sleep(time_t seconds){
struct timespec ts, remaining;
timespec_get(&ts, TIME_UTC);
ts.tv_sec += seconds;
while(thrd_sleep(&ts,&remaining) == -1){
timespec_get(&ts, TIME_UTC);
ts.tv_sec += remaining.tv_sec;
}
}
を使用して 1 秒後に起動するようにアラームを設定してalarm()
から、 を呼び出しますpause()
。
の使用はselect()
別の移植可能なソリューションですが、(単に) 遅延を生成するための非常に型にはまらないアプローチです。