代码块IDE中flushall的替代品是什么?

时间:2014-08-07 10:27:13

标签: c

这是我的代码,它在Turbo C中运行得非常好,但在代码块中却没有。我面临的唯一问题是使用flushall()。我怎样才能克服这个问题?

#include<stdio.h>
#include<ctype.h>

int extractDigits(unsigned long int num, int *index, int *digits)
{
    if (num)
    {
        digits[*index] = num % 10;
        *index = *index + 1;
        extractDigits(num / 10, index, digits);
    }
    return(*index);
}
int main()
{
    int x=0,j,i,index=0,digit,digits[32];
    unsigned long int n1,n2,temp,num,count=0;
    printf("\n Enter lower value n1 : ");
    if(!scanf("%lu",&n1))
        x=1;
    flushall();
    printf("\n Enter higher value n2 : ");
    if(!scanf("%lu",&n2))
        x=1;
    flushall();
    printf("\n Enter the digit you wish to count : ");
    if(!scanf("%d",&digit))
        x=1;
    flushall();
    if(n1>n2||x)
    {
a:printf("\n Invalid Input\n");
  goto z;
    }
    if(n1<0||n1>150000||n2<0||n2>150000)
        goto a;
    if(!n1)
        count++;
    for(temp=n1;temp<=n2;temp++)
    {
        num=temp;
        i=extractDigits(num, &index, digits);
        for(j=0;j<i;j++)
        {
            if(digits[j]==digit)
                count++;
        }
        index=0;
    }
    printf("\n Count : %lu \n",count);
z:return 0;

如果我不使用flushall(),那么我无法运行无效输入的测试条件。这个问题的解决方案是什么?

2 个答案:

答案 0 :(得分:0)

http://www.cplusplus.com/reference/cstdio/

我没有找到flushall(),可能是编译器不同。有fflush。也许你可以使用它。

答案 1 :(得分:0)

这不是IDE的问题,而是编译器的问题,最重要的是C标准库。

符合C99和Posix标准的库具有fflush(3),其记录为:

  

int fflush(FILE * stream);

     

如果stream参数为NULL,则fflush()刷新所有打开的输出          流。

所以请致电

    fflush(NULL);

当你想要刷新所有输出流时(我想你的非标准fflushall正在做)。

请注意,常见的习惯是结束,而不是使用\n printf格式字符串开始,因为stdout通常是行缓冲的。