1

许多人告诉我有更好的方法来创建X毫秒的延迟。人们告诉我 sleep 命令和 usleep(),但我没能成功。

目前我正在使用这个:

void delay(unsigned int mseconds) {
    clock_t goal=mseconds+clock();
    while(goal>clock());
}

通过这样做

delay(500);
printf("Hello there");

我可以让文本在半秒后出现,但我想找到一种更好的方法来做到这一点,因为人们告诉我这是一种不好的方法,而且它可能不是很准确。

4

2 回答 2

1

我想通了一切!!!天哪,当我第一次尝试使sleep()命令工作时,我被甩了

#include<stdio.h>
#include<windows.h>

int main(){

    int load;
    int Loadwait=100

    for(load=0;load<100;load+=5){
        printf("Loading %d",load);
        Sleep(Loadwait);
        system("cls");
    }
    return 0;
}
于 2018-07-29T20:55:32.683 回答
0

使用musl libc你应该能够使用thrd_sleep()

#include <threads.h>
#include <time.h>
#include <stdio.h>

int main(void)
{
    printf("Time: %s", ctime(&(time_t){time(NULL)}));
    thrd_sleep(&(struct timespec){.tv_sec=1}, NULL); // sleep 1 sec
    printf("Time: %s", ctime(&(time_t){time(NULL)}));
}
于 2018-07-29T20:18:20.173 回答