Многосимвольное предупреждение при получении символа с клавиатуры в c - PullRequest
1 голос
/ 21 октября 2019

В соответствии с операцией, введенной с клавиатуры, я хочу сделать 5 операций со структурой переключателя, но выдает ошибку. Я также пробовал использовать функции getchar и putchar ...

    int main()
    {
        char proc;
        int firstNum,secondNum,result;
        printf("* Multiplication\n/ Division\n+ Add \n- Minus\n%c Mode", '%');
        printf("\nEnter the first number: ");
        scanf("%d",&firstNum);
        printf("\nEnter the second number: ");
        scanf("%d",&secondNum);
        printf("\nEnter the process: ");
        scanf("%c",&proc);

        switch(proc) {
        case '*':
            result=firstNum*secondNum;
            printf ('%d',result);
            break;
        case '/':
            result=firstNum/secondNum;
            printf ('%d',result);
            break;
        case '+':
            result=firstNum+secondNum;
            printf ('%d',result);
            break;
        case '-':
            result=firstNum-secondNum;
            printf ('%d',result);
            break;
        case '%':
            result=firstNum%secondNum;
            printf ('%d',result);


    break;
    default:
        printf('Warning!');
        break;
}

предупреждение: константа из нескольких символов [-Wmultichar]

предупреждение: передача аргумента 1 из функции printf делает указательиз целого числа без приведения [-Wint-преобразование]

1 Ответ

2 голосов
/ 21 октября 2019

Для начала используйте

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

(см. Пробел перед символом &) вместо

scanf("%c",&proc);

И используйте двойные кавычки для указания строковых литералов в выражениях, подобных этому

printf ( "%d",result);
         ^^^^

или это

 printf("Warning!");
       ^^^      ^^^ 

И вы забыли одну закрывающую скобку в конце программы.

...