0
Я написал следующий код, чтобы напечатать символ абзаца символом с интервалом в 0,3 секунды. Но когда я компилирую и запускаю его, он печатает все в предложении. Почему функция наносекунды не работает?Почему мой нанослоп не работает ...?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i = 0;
struct timespec t1, t2;
t1.tv_sec = 0;
t1.tv_nsec = 300000000L;
char story[] = {"I want to print this story/letter by letter on the screen./"};
while(story[i] != '\0') {
if(story[i] == '/')
sleep(1);
else
printf("%c", story[i]);
nanosleep(&t1, &t2);
i++;
}
return 0;
}
Печать на 'stdout' обычно буферизируется. Тем не менее, отсутствие хороших источников. См. Http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline-is-in-the-format-strin – Spidey