Ошибка в цикле While - C (СИ) (70642)
Формулировка задачи:
Написал цикл. При нажатии определенной клавиши происходит выход из цикла и программы. Когда переменная
Пример неправильного срабатывания:
exitWhile
- типint
, то цикл отрабатывает нормально. Но вот никак не пойму почему при объявлении ее типомchar
цикл срабатывает 2 раза при неправильном вводе клавиши. Код с объявлением типаchar
:#include <stdio.h> #include <stdlib.h> #include <locale.h> int main(void){ char exitWhile = 'A'; setlocale(LC_ALL, "Rus"); while(exitWhile != 'q'){ printf("Для выхода требуется ввести: q \n"); printf("Команда:"); scanf("%c", &exitWhile); } return 0; }
Решение задачи: «Ошибка в цикле While»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(void){ char exitWhile = 'A'; char tmp; while(exitWhile != 'q') { scanf("%c%c", &exitWhile, &tmp); // в tmp будет "\n" } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и для работы с памятью.
- Объявление двух переменных типа char: exitWhile и tmp.
- Вход в цикл while, условием которого является неравенство exitWhile и 'q'.
- Внутри цикла происходит считывание двух символов в переменные exitWhile и tmp с помощью функции scanf.
- Цикл продолжается до тех пор, пока значение переменной exitWhile не станет равным 'q'.
- После выхода из цикла происходит возврат в основную программу и вычисление значения 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д