使用sscanf()从命令行读取

时间:2015-10-17 09:59:43

标签: c argv scanf

我想在命令行中获取两个值,如下所示:./ part4 -f 50.0 我需要得到角色以及浮点数。 角色只能是'f'或'c'。 所以我写这个:

if ( sscanf(argv[1], "-%[cf]",&flag) !=1 )
{
    printf("invalid input flag!\n");
}
else printf("flag=%c\n",flag);

if ( sscanf(argv[2], "%f", &temp) !=1 )
{
    printf("invalid input temperature!\n");
}
else printf("temp=%f\n",temp);

我进行了一些测试:

  ./part4 -f 50.0
  flag=f
  invalid input temperature!

  ./part4 -d 50.0
  invalid input flag!
  temp=50.000000

我认为我的第一个sscanf()有问题,但我无法理解。

0 个答案:

没有答案