7 / 7 / 2
Регистрация: 30.04.2012
Сообщений: 186
|
||||||
1 | ||||||
Как вывести на консоль введённый символ?30.07.2017, 05:37. Показов 1448. Ответов 6
Метки нет (Все метки)
Всем добрый день!
Написал учебный пример для ввода данных трёх типов: integer, real, char . Код компиляцию проходит. Но при исполнении программы, упорно не выводится на консоль введённый символ. Не могу разобраться, что надо изменить в исходном коде. Пробовал этот код в трёх программах-средах. Везде НЕ ВЫВОДИТСЯ коварный введённый символ. Прошу продвинутых IT-специалистов оказать помощь для работы со школьниками.
0
|
30.07.2017, 05:37 | |
Ответы с готовыми решениями:
6
Вывести приглашение к вводу символа, ввести символ, вывести введенный символ в центре очищенного экрана Как в с++ вывести символ в консоль в произвольном месте, например символ 1 в координатах 50 50 Вывести символ, введенный в инпут Если введенный символ является цифрой от «0» до «5», то вывести слово «до» |
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
|
||||||
30.07.2017, 08:23 | 2 | |||||
0
|
Модератор
|
|
30.07.2017, 10:19 | 3 |
Небольшое пояснение: после ввода по Read в строке 28 чтение символа в строке 34 приводило к считыванию символа завершения строки, для windows/dos это символ с кодом 13 - первый в паре #13#10, для *nix - это #10. До введенного пользователем символа дело не доходило.
Другой вариант исправления - добавить Readln; перед строкой 34.
0
|
7 / 7 / 2
Регистрация: 30.04.2012
Сообщений: 186
|
|
30.07.2017, 11:11 [ТС] | 4 |
Уважаемые господа! Спасибо за рекомендации. Но пока не получается нормальной работы кода.
Вот очень интересный момент! Я этот учебный пример написал и на языке C (мне нужно написать две методички с одинаковыми примерами, но решения должны быть на Pascal и на C). Увы, там (в коде на языке C) также проявилась эта проблема. Я задал вопрос на нашем форуме в разделе "C для начинающих". Можно посмотреть. К моей великой радости, один очень грамотный программист дал рекомендацию по использованию функции fflush(stdin); Я эту функцию включил в исходный код. И сразу код безукоризненно заработал! Может быть аналогичный выход есть и для языка Pascal?
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
30.07.2017, 11:59 | 5 | |||||
Можно так написать.
0
|
Модератор
|
|
30.07.2017, 16:57 | 6 |
потоковый ввод из стандартного файла ввода (input) при помощи Read(Ln) и чтение клавиатуры (ReadKey) -- вещи совершенно разные, если программа запущена с перенаправлением входного потока, то ReadKey сослужит плохую службу, остановив выполнение до нажатия клавиши на клавиатуре. Не стоит смешивать одно с другим.
1
|
7 / 7 / 2
Регистрация: 30.04.2012
Сообщений: 186
|
||||||
31.07.2017, 03:30 [ТС] | 7 | |||||
Уважаемый Puporev!
Я выполнил Вашу рекомендацию. Код стал ОТЛИЧНО работать! Самое большое спасибо! Привожу доработанный код.
Для всех. Небольшое уточнение. Я проверил работу кода в разных программах-средах. Хорошо всё работает в TURBO PASCAL 7.1 и в TMT v.3.50 . Не работает в Free Pascal v.2.6.0 . Для работы со школьниками мне вполне достаточно программы-среды TURBO PASCAL 7.1 .
0
|
31.07.2017, 03:30 | |
31.07.2017, 03:30 | |
Помогаю со студенческими работами здесь
7
Вывести true если введенный символ является гласной буквой Из файла вывести только те строки, которые заканчиваются на введенный с клавиатуры символ Вывести каждый введенный с клавиатуры символ, причем заглавную русскую букву выводить в двух экземплярах Исключить из введенной строки символ, введенный с клавиатуры. Вывести на экран количество удаленных символов и строку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |