在C中是否可以等待几秒钟再打印新行?

问题描述 投票:0回答:6

例如我可以让它输入类似的内容

"Hello"
"This"
"Is"
"A"
"Test"

每条新行之间间隔 1 秒?

谢谢,

c time line
6个回答
60
投票

嗯,

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;
}

这就是你在 Windows 和 Linux 上使用 C 语言睡眠的方式!对于 Windows,两种方法都应该有效。只需将秒数的参数更改为您需要的值,然后在需要暂停的地方插入,就像我在 printf 之后一样。 另外,注意:使用windows.h时,请记住sleep中的大写

S
,也就是它的毫秒! (感谢克里斯指出这一点)


5
投票

不像 sleep() 那么优雅,但使用标准库:

/* data declaration */
time_t start, end;

/* ... */

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

我将留给您找出

#include
time_t
time()
的正确标题 (
difftime()
) 以及它们的含义。这是乐趣的一部分。 :-)


2
投票

您可以查看 sleep() 它将线程挂起指定的秒数。


0
投票

这应该适用于所有系统,因为它使用标准库

time.h

#include <time.h>
void wait_s(int seconds)   // waits for "seconds" seconds
{
    clock_t start_time = clock();
    while (clock() < start_time + seconds*1000);
}

您也可以使用

float seconds

如果您更喜欢毫秒,请使用此:

#include <time.h>
void wait_ms(int milliseconds)   // waits for "milliseconds" ms
{
    clock_t start_time = clock();
    while (clock() < start_time + milliseconds);
}

你的代码可能是这样的

int main(){
    printf("Hello,");
    wait_s(5);
    printf("World");
    return 0;
}

-2
投票

最简单的方法是循环。无论是 while 还是 for 循环

int main()
{
while(i<100000) //delay
{
 i++;     
 }
 }

-9
投票

适用于所有操作系统

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.