4

何が間違いなのかさっぱりわかりません。それは正しいようですね。

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

int main(int argc, char *argv[])
{
   char op;

   printf("Type in operator (+,-,/,*):");
   scanf("%i",&op);

   if(op == '+')
   {
      printf("You entered a plus");
   }

   system("pause"); 
   return 0;
}

+を入力すると、「プラスを入力しました」と出力されると思っていました。そうではありません。

私はCの初心者です。よろしくお願いします:)

4

3 に答える 3

4

if状態は良好です。問題はscanf()フォーマットです。

scanf("%c",&op);

(%iは整数を読み取りますが、 a%cを読み取りますchar。)

于 2013-04-06T15:14:14.453 に答える
0
scanf("%i", &op);

あなたは整数を期待しています。したがって、文字を書いて を押す<Enter>と、scanf失敗します (戻り値を確認して確認できます)。

if (scanf("%i", &op) != 1)
{
    /* Treat the error. */
}

文字を読み取るには、むしろ%cフォーマットを使用します。scanf

scanf("%c", &op);
于 2013-04-06T15:14:34.553 に答える
0

あなたの問題は間違ったフォーマット指定子にあります

//In scanf instead of 
scanf("%i",&op);
// you have to provide 
scanf("%c",&op);

%i use for reading integer whereas %c use for reading char.
于 2013-04-06T17:57:35.100 に答える