忽略未知长度的数据输入中的非整数

时间:2018-06-15 16:19:08

标签: char integer scanf

我是c语言的新手并且在理解我的错误方面寻求帮助。 我想编写一个程序,计算一行整数和字符中2位数的数量,例如" 21c sdhhj 32 fhddhf234 45"这是3个两位数字。我将终结点设置为循环(scanf%d或EOF失败)并仍然获得无限循环。我明白失败的整数scanf应该在EOF返回0或-1,为什么我得到无限循环?先感谢您! :)

void read(int blue[],int red[],int couple[])
{
int vote=0,rcount=0,bcount=0;
int ok=-2;
while (ok!=EOF)
{
    ok=scanf("%d",&vote);
    if (ok==0)
        continue;
    if (vote<TOTAL&&vote>0)
    {
        rcount=vote%10;
        bcount=vote/10;
        if (rcount==bcount)
            continue;
        couple[vote]++;
        red[rcount]++;
        blue[bcount]++;
    }
    ok=0;
}

我希望扫描并存储它们,只要它们小于TOTAL(99),直到输入结束。

0 个答案:

没有答案