Как прочитать три переменные, используя scanf в C? - PullRequest
0 голосов
/ 04 апреля 2020

Я пишу простой калькулятор. Я хочу прочитать первое целое число и сохранить его в el1. Затем я хочу напечатать «Введите el2: \ n» и после этого прочитайте второе целое число и сохраните его в el2. После этого мне нужно распечатать «Выбрать из (+, -, /, *)», прочитать его и сохранить в op [0]. Моя программа печатает Enter el1: и затем он ждет от меня ввода 2 целых чисел, затем произносит Enter el2: и ждет, когда я введу 1 целое число, а затем печатает Выберите из .. и ничего не читает.

int el1 = 0;
printf("Enter el1:  \n");
scanf(" %d \n", &el1);
int el2 = 0;
printf("Enter el2: \n");
scanf(" %d \n", &el2);
printf("Choose from ( + ,  - ,  / , * ):\n");
char op[2];
scanf("%c", &op[0]);

Как заставить его работать правильно?

1 Ответ

2 голосов
/ 04 апреля 2020

, как упоминалось в комментариях, удаляйте пробелы из scanf. В противном случае вам будет необходимо ввести символ, не являющийся пробелами.

и добавить один пробел здесь scanf(" %c", &op[0]);, поскольку это предотвращает scanf взять \n в буфере в качестве ввода.

look

printf("Enter el1:  \n");
scanf("%d", &el1);
int el2 = 0;
printf("Enter el2: \n");
scanf("%d", &el2);
printf("Choose from ( + ,  - ,  / , * ):\n");
char op[2];
scanf(" %c", &op[0]);
...