如何使用sscanf检查argv参数是否为数字?

时间:2018-11-06 11:35:48

标签: c scanf

我必须使用sscanf或scanf。

if (sscanf(argv[x],"%d", &numb) == 1) {
       do smt 
  };

参数为10xyz之类的情况就是我的问题。在这种情况下,我总是收到EOF,程序立即停止。但是我不希望该程序停止运行。

xyz10或10xyz或10x10当然不应该是一个数字,但是我不希望我的程序因为这个参数而停止。那么,如何检查参数是否为带有sscanf且没有EOF的数字,而参数则可以是任何字符的任意组合?

1 个答案:

答案 0 :(得分:2)

这样做可以循环遍历参数,并限定每个参数是否为整数。

delete t
    from t join
         (select id, link, name, min(date) as mindate
          from t
          group by id, link, name
         ) tt
         using (id, link, name)
    where date > mindate;

这样的输入-> 10 20 10dje 60

产生这样的输出->

得到一个整数-> 60

乱码

得到一个整数-> 20

得到一个整数-> 10