2012-06-06 205 views

回答

10

sleep()功能这么做,有几种方法来使用它;

在Linux上:

#include <stdio.h> 
#include <unistd.h> // notice this! you need it! 

int main(){ 
    printf("Hello,"); 
    sleep(5); // format is sleep(x); where x is # of seconds. 
    printf("World"); 
    return 0; 
} 

和Windows您可以使用DOS.H或WINDOWS.H这样的:

#include <stdio.h> 
#include <windows.h> // notice this! you need it! (windows) 

int main(){ 
    printf("Hello,"); 
    Sleep(5); // format is Sleep(x); where x is # of milliseconds. 
    printf("World"); 
    return 0; 
} 

,或者您可以使用DOS.H用于Linux的风格像睡眠所以:

#include <stdio.h> 
#include <dos.h> // notice this! you need it! (windows) 

int main(){ 
    printf("Hello,"); 
    sleep(5); // format is sleep(x); where x is # of seconds. 
    printf("World"); 
    return 0; 
} 

这就是你如何睡在C和Windows上和Linux!对于Windows,这两种方法都应该可以工只需将参数#秒改为所需,然后插入任何需要暂停的地方,就像我之后的printf一样。 此外,注意:在使用WINDOWS.H时,请记得在睡眠首都S,也那是它的毫秒! (感谢Chris指出了这一点)

+1

之前,我也想指出来谁可以在此线程绊倒别人,记得把握睡眠(); !!!! – AppleAssassin

+0

是的,否则编译时会出错。 – Annabelle

2

你可以看一下sleep()其挂起线程指定的秒数。

+0

正是我一直在循环进行,非常感谢 – AppleAssassin

1

的东西不一样优雅的睡眠(),但使用标准库:

/* data declaration */ 
time_t start, end; 

/* ... */ 

/* wait 2.5 seconds */ 
time(&start); 
do time(&end); while(difftime(end, start) <= 2.5); 

我将离开你的找出正确的头(#include )为time_ttime()difftime(),和他们的意思。这是乐趣的一部分。 :-)

+2

你的建议**也**不必要地浪费处理器周期。睡眠()或某些变体是正确的答案。 – pb2q

+0

哦,你说得对。不高雅(正如我已经说过的)。它只是便携式。但浪费处理器周期不仅仅是一个副作用。实际上,这是代码背后的主要思想,正如你所说的那样,它的工作原理很笨拙。 :-) – CST

-2

适用于所有OS

int main() 
{ 
char* sent[5] ={"Hello ", "this ", "is ", "a ", "test."}; 
int i =0; 
while(i < 5) 
{ 
printf("%s", sent[i]); 
int c =0, i++; 
while(c++ < 1000000); // you can use sleep but for this you dont need #import 
} 
return 0; 
} 
+3

这是一个非常糟糕的做法。你的循环无用地浪费了处理器周期。为什么你应该反对使用'#import'来实现标准的睡眠功能?最糟糕的情况下,你需要#ifdef来覆盖多个平台。 – pb2q

+0

它只是一个选项,如果你sayits不好的做法,所以我花十年的时间没有 – Eveler

+3

如果你不明白为什么这是一个糟糕的主意,那么你应该了解为什么现在。 – pb2q

相关问题