读取值
问题描述:
为什么不能我使用此代码,我使用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);
}
首先,如果'的argc == 2'的有效索引是'[0]'和'[1]',值2表示有多少,而不是最高指数。如果你输入'4 + 3',没有空格,我会期待'argv [1]'中的所有内容。 –
鉴于输入格式,您正在使用不合适的格式字符串。你也应该检查'sscanf()'的返回值。 –