C中具有睡眠功能的原因不明的行为

时间:2016-09-06 23:42:20

标签: c sleep

我希望我的程序打印一个给定的文件,但不是立即打印它我希望字符以一定的间隔出现。

而不是等待,例如,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;
}

我已经阅读过有关睡眠功能的行为,但没有发现任何相关内容。

我做错了什么?

0 个答案:

没有答案