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