【发布时间】:2017-10-21 12:28:14
【问题描述】:
为什么我不能使用此代码从命令行读取第二个值,我使用的是 VS 2017 并且命令参数中有 4+3
#include <stdio.h>
int main(int argc, char *argv[])
{
float numberOne;
float numberTwo;
float theResult;
if (argc == 2)
{
sscanf(argv[1], "%f", &numberOne);
sscanf(argv[2], "%f", &numberTwo);
printf("%f \n", numberOne + numberTwo);
}
else
{
printf("invalid input");
}
sleep(10);
return(0);
}
【问题讨论】:
-
首先,如果
argc == 2的有效索引是[0]和[1],则值2 表示有多少,而不是最高索引。如果你输入4+3,没有空格,我希望所有的都在argv[1]。 -
给定输入格式,您使用的格式字符串不合适。您也应该检查来自
sscanf()的返回值。