从命令提示符执行程序时fgets发生的问题

时间:2014-03-17 13:06:33

标签: c

scanf("%d",&a);

fflush(stdin);

fgets(ch,SIZE,stdin);    //SIZE=100 and ch is a char array

我刚刚只使用了这部分代码。它工作正常。但是当我使用file.exe < input.txt > output.txt从cmnd prmpt执行此程序时,它在output.txt文件中给出了一个垃圾值。

1 个答案:

答案 0 :(得分:1)

您可以使用stdingetchar

fgetc(stdin)
static void flush_stdin(void)
{
    int c;

    while ((c = fgetc(stdin)) != '\n' && c != EOF);
}

scanf("%d",&a);
flush_stdin();
fgets(ch,SIZE,stdin);    //SIZE=100 and ch is a char array