yukiyukiponsuの日記

雑記ブログ

質問はCONTACTやコメントでお願い致します。

【C言語の入門】コマンドライン引数を使った四則演算

この記事をシェアする

コマンドライン引数を使った四則演算

 

こんにちわ! 現役理系大学生のゆきぽんずです

 

コマンドライン引数を使った四則演算と聞いて、すぐに実装できますか?

 

なかなか難しいですよね

 

今日は、そのコマンドライン引数を使った四則演算のソースコードを公開します

 

理解するのに時間がかかるかもしれませんが、しっかり理解してください

 

本記事の内容

 

それでは早速ソースコードを、見ていきましょう

コマンドライン引数を使った四則演算のソースコード

実装例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
  double op1, op3;
  double ans;
  char *op2;

  //コマンド引数のチェック
  if(argc != 4){
    fprintf(stderr, "ERROR : The number of arguments is wrong\n");
    return 1;
  }

  op1 = atof(&argv[1][0]);

  op3 = atof(&argv[3][0]);

  op2 = &argv[2][0];

  switch(*op2){
    case '+' : ans = op1 + op3;
    break;
    case '-' : ans = op1 - op3;
    break;
    case '*' : ans = op1 * op3;
    break;
    case '/' : ans = op1 / op3;
    break;
    default : fprintf(stderr, "ERROR : The second argument is one character of the operation symbol (+,-, *, /)\n");
    return 1;
  }

  printf("%lf\n", ans);

  return 0;
}

 

ソースコードは以上です

 

これをコンパイルをし、実行するとうまくいきます

 

コンパイル例と実行例を示します

 

コンパイル

gcc -o q8 q8.c

* q8のところは、自分が作ったファイル名でお願いします

 

実行例

足し算

q8.exe 10.2 + 8

18.200000

 

引き算

q8.exe 3 - 2

1.000000

 

割り算

q8.exe 3 / 2

1.500000

 

掛け算

q8.exe 3 "*" 2

6.000000

 

 引数の数が違う時

q8.exe 3/2

ERROR : The number of arguments is wrong

 

演算子以外の時

q8.exe 3 % 2

ERROR : The second argument is one character of the operation symbol (+,-, *, /)

 

以上です

絶対に見てほしい注意点

絶対に見てほしい注意点

 

しかし、よくよく見ると何でだろうと思うところはありませんか?

 

そうです

 

掛け算を示す * (アスタリスク)だけが、" "(ダブルクォーテーション)で囲われています

 

なぜなら、他の演算子は、単体で意味をもたないため " "(ダブルクォーテーション)で囲う必要がないからです

 

しかし、*(アスタリスク)は単体だと、ワイルドカード扱いになってしまいます

 

ワイルドカード(あいまい検索) 「*」(半角アスタリスク):エクセル教室

 

そのため、演算子で使う * (アスタリスク)は文字列であると、コマンドプロンプトに認識させる必要があります

 

なので、* (アスタリスク)は、" "(ダブルクォーテーション)で囲まれているのです

 

私も、これには手を焼かされたので、皆さんも気を付けてくださいね

まとめ

 今日は、C言語コマンドライン引数を使った四則演算の方法と、注意点についてまとめました

 

ソースコードをまる写しするだけでなく、キチンと内容も理解してくださいね

 

この記事が少しでも参考になっていれば幸いです

 

今日も読んでくださり、ありがとうございます

 

あなたの人生が少しでも豊かなものとなりますように

 

あなたのそばにゆきぽんず