我希望我的程序打印一个给定的文件,但不是立即打印它我希望字符以一定的间隔出现。
而不是等待,例如,1秒然后打印字符,它似乎等待1秒,它必须在当前行中打印,然后一次打印所有字符。
我尝试在putchar()函数之前和之后使用usleep()和sleep(),尽管没有成功。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char **argv)
{
FILE *fp;
char ch;
if(argc != 2)
{
puts("The syntax of the command is incorrect: \n*Program* *file*");
exit(0);
}
if((fp = fopen(argv[1], "r")) == 0)
{
puts("Error opening file");
exit(1);
}
while((ch = fgetc(fp))!= EOF)
{
switch (ch)
{
case ' ': putchar(ch);
usleep(1000000/3);
break;
case '\n':putchar(ch);
usleep(1000000/2);
break;
default: putchar(ch);
usleep(1000000/4);
}
}
fclose(fp);
return 0;
}
我已经阅读过有关睡眠功能的行为,但没有发现任何相关内容。
我做错了什么?