端末からの入力を使って簡単な電卓を作成しようとしています。C言語の端末入力からcharポインタを格納
./main.c 1 + 3
1 + 3 = 4
これは非常に簡単なコードですが、端末の入力に問題があります。 stackexchangeでターミナル入力についてたくさん読んだことがありますが、コンパイル時にこのエラーが出ます:
error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
私はなぜそれがわかりません。私はそれを行うにはさまざまな方法を試したが、うまくいかない。ここでコードは、私が知りたいのは、上記の例で1、+、3をどのように格納するかです。私がここに投稿するコードは、最も困難な操作(この場合は+演算子)をどのように格納できるかの例です。
#include<stdio.h>
int
main(int argc, char *argv[])
{
char operator;
int *operatorp;
operatorp = &operator;
operatorp = argv[2];
printf("%c\n",operator);
return 0;
}
'int *'と 'char *'は互換性がありません。 –
コマンドラインで式を直接入力したい場合は、Unix/Linuxシステムで問題が発生する可能性があります。 – CiaPan
_undefined behaviour_の意味を読んでください。それを避けてください!また、コンパイラの警告に注意してください。彼らは楽しいものではありません。 – Olaf