2017-01-05 3 views
1

私はCを学び始めました。「ユーザー入力」の章では、単にコマンドライン引数を使用した電卓の例があります。私が自分のマシンに書いてコンパイルしたとき、乗算(*)演算子を除くすべての演算子( - 、+、/)が働いていました。乗算しようとすると、新しい行にコマンドプロンプトが表示されます。これにはどんな理由がありますか?例は間違っていますか?単純な電卓in 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

ああ、これはWindowsのLinuxの対問題です。 './a.out 2 \ * 3'を使用して、カレントディレクトリ内のすべてのファイルに' * 'が展開されないようにします。 –

答えて

3

Unixシェルを使用している場合は、\ before *を使用する必要があります。シェルはそれをワイルドカード文字として認識します。

$ ./yourapp 1 \* 1 
1 

幸運と幸せコーディング:)