为什么我不能使用这段代码从命令行读取第二个值,我使用的是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);

}

最佳答案

您应该以4 3的形式传递参数(3到4之间没有'+'字符)。argc是传递的命令行参数数。默认情况下,第一个参数始终是程序名。因此,argc的值为3。

if (argc == 3)
{
    sscanf(argv[1], "%f", &numberOne);
    sscanf(argv[2], "%f", &numberTwo);
    printf("%f \n", numberOne + numberTwo);
}

10-04 14:29