Общий подход - написать бесконечный цикл (while (1) { ... }
) и приостанавливать выполнение вашей программы каждый тик.
Чтобы сделать паузу, вы можете использовать функцию sleep
из стандартной библиотеки. В качестве альтернативы sleep
, который может указывать только время сна в секундах, вы можете использовать функцию nanosleep
, которая обеспечивает более высокую точность.
#include <stdio.h>
#include <time.h>
int main()
{
struct timespec t = { 3/*seconds*/, 0/*nanoseconds*/};
while (1){
printf("Wait three seconds and...\n");
nanosleep(&t,NULL);
fflush(stdout); //see below
}
}
Обратите внимание, что если вы не добавите символ новой строки (\n
) в строку, которую вы выводите, вы, скорее всего, ничего не увидите, потому что строка сначала печатается в буфер, и этот буфер иногда сбрасывается к терминалу (это обычно происходит, когда вы печатаете новую строку, но даже это не может гарантировать сброс в каждой системе). Вот почему лучше добавить fflush
звонок.