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

int main()
{

    int num1;
    int num2;
    char op;

    printf("Enter the first number: ");
    scanf("%d", &num1);
    printf("Enter an operator: ");
    scanf("%c", &op);
    printf("Enter the second number: ");
    scanf("%d", &num2);

    switch(op){

        case'+':
            printf("%d", num1+num2);
            break;

        case'-':
            printf("%d", num1-num2);
            break;

        case'/':
            printf("%d", num1/num2);
            break;

        case'*':
            printf("%d", num1*num2);
            break;

        default:
            printf("Enter a valid Operator");

    }

    return 0;
}

ユーザー入力による基本的な電卓を作成しようとしました。しかし、ここ(Stackoverflow)で検索したこの行でエラーが発生し、スペースを入れるとプログラムが正常に動作scanf("%c", &op);するという答えも見つかりました。scanf(" %c", &op)今私が持っている質問は、誰かが初心者のために素人の言葉でこれを説明してもらえますか? お願いします。あなたの答えは大歓迎です

4

4 に答える 4

0

フォーマット文字列の変換指定子の前にスペースを追加します

scanf( " %c", &op );
       ^^^^^  

この場合、入力ストリーム内の空白文字は'\n'、押されたキー Enter に対応する改行文字としてスキップされます。

于 2021-11-07T12:34:40.337 に答える