2017-01-05 3 views
1

Я начал изучать C и в главе о «пользовательском вводе» есть пример калькулятора, просто используя аргументы командной строки. Когда я написал и скомпилировал его на своей машине, все операторы (-, +, /), кроме оператора умножения (*), работали. При попытке размножения он просто отображает командную строку на новой строке. Любая причина для этого? Может ли этот пример ошибиться? Вот оно:Простой калькулятор в C, только оператор умножения не работает

#include <stdio.h> 
int main (int argc, char *argv[]) 
{ 
    int arg1, arg2; 
    if (argc == 4) 
    { 
    sscanf (argv[1], "%d", &arg1); 
    sscanf (argv[3], "%d", &arg2); 
    if (*argv[2] == '+') printf ("%d\n", arg1 + arg2); 
    if (*argv[2] == '-') printf ("%d\n", arg1 - arg2); 
    if (*argv[2] == '*') printf ("%d\n", arg1 * arg2); 
    if (*argv[2] == '/') printf ("%d\n", arg1/arg2); 
    } 
return 0; 
} 
+2

Ahh, это Windows, Linux по сравнению с проблемой. Используйте './a.out 2 \ * 3', чтобы предотвратить расширение' * 'ко всем файлам текущего каталога. –

ответ

3

Вам необходимо использовать \ before *, если вы используете оболочку Unix иначе оболочка будет понимать ее как символ дикой карты.

$ ./yourapp 1 \* 1 
1 

удачи и счастливого кодирования :)

Смежные вопросы