从C中的命令输入获取输入并进行计算

时间:2017-10-01 22:02:25

标签: c scanf argv

这里的第一张海报,原谅我的基本问题,但我似乎无法理解为什么这段代码不起作用。

我正在尝试从命令行输入,并执行简单的计算,但是,当我调试代码时,我从if语句创建的错误消息显示,而不是计算的结果。

这是我所做的代码;

#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[]) {
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    int errors = 0;
    int read = 0;

    if (argc != 3){
        errors++;
        printf("Error: Less/more than 2 numbers entered.");

    }
    if (argc == 3){
        read = sscanf(argv[1], "%d", &num1);
        read = sscanf(argv[2], "%d", &num2);
        if (read ==2){
            sum = num1 + num2;
            printf("%d", sum);
        }
        else{
            printf("something weird happened...");
        }
    }
}

我在命令输入中的值是“4”和“3”(没有引号和空格来分隔它们)。因此,输出应该是总和,这将是7.但我只是得到错误消息“发生了奇怪的事情...”,这显然是我在if语句中放入的,如果上述失败。

我猜这是与我使用sscanf()两次的方法有关吗?原谅我,我是第一次学习这些东西的学生。我已经尝试过读C上的书,并且有我的讲师代码,但我认为我通过反复试验能够更好地学习,并了解它应该如何运作。任何帮助或指导都将非常感激。

0 个答案:

没有答案