|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.03.2009, 14:59 | #1 |
Регистрация: 03.03.2009
Сообщений: 5
|
Getchar bug (?..)
Поясните пожалуйста как работает стандартная функция getchar()?
Имеем такой код: Код: Код:
Помоему getchar() не так должна работать. Или я ошибаюсь? Объясните пожалуйста. |
05.03.2009, 15:45 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Читал, что, вроде как, должна работать без enter'а, но на практике всегда приходится его жать.
Поэтому имхо лучше использовать getch(), или getche() для подобной задачи.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
05.03.2009, 18:09 | #3 |
Регистрация: 03.03.2009
Сообщений: 5
|
Спасибо большое, вот только я про эту функцию ничего не слышал раньше и где она объявлена?
Кстати и компилятор тоже жалуется, говорит, мол, функция не определена, но при этом компилирует всё, и всё работает как надо! Я ради эксперимента закоментил верхнюю строчку (include), и снова скомпилировал. Компилятор, жалуясь что неопределены функции printf и getch, всё таки выдал мне рабочую программу Что за фокусы? |
05.03.2009, 18:15 | #4 |
Регистрация: 03.03.2009
Сообщений: 5
|
Да, и вот еще по поводу getchar. Много ли еще подобных сюрпризов меня ожидает в моей дальнейшей программерской практике, когда функции работают не совсем так (а то и совсем не так) как оговаривается во ВСЕЙ (в том числе и последней) литературе? Это все таки немного затрудняет отладку программ, особенно начинающим прогаммистам
|
05.03.2009, 18:23 | #5 | ||
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
для использования getch() и getche() нужно подключить <conio.h>
Цитата:
Цитата:
"ВСЕЙ" литературы я, увы, не успел прочитать ) В основном, пользуюсь справочниками в интернете. Обычно функции работают так, как заявлено ).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
||
05.03.2009, 18:56 | #6 | |
Регистрация: 03.03.2009
Сообщений: 5
|
Спасибо, буду знать )
Цитата:
Я работаю в MS Visual Studio 2008, эти чудеса ему присущи. Я так подозреваю, что в этой среде есть некая такая возможность, если в коде есть необъявленная функция, то запускается поиск подходящего заголовочного файла и он подключается к коду неявно перед компиляцией. Однако исходник сам не меняется. Если это так, то на мой взгляд майкрософтовцы перестарались, пытаясь облегчить труд простых смертных. Пусть, уж если на то пошло, выдавал бы подсказку, мол, такая-то функция не объявлена в коде, не хотите ли часом подключить такой-то заголовочный файл? А то ведь в других компиляторах этот код не будет компилиться. Если кому интересно и у кого есть MS Visual Studio 2008, попробуйте проверить мою теорию, а результаты здесь опишите. Прям даж интересно |
|
05.03.2009, 19:15 | #7 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Achilles Я работаю в Dev-C++ и C++ Builder 6.
Сейчас проверил в студии - ругается на неизвестные идентификаторы. Может, что-нибудь в настройках включить нужно..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
05.03.2009, 19:49 | #8 |
Регистрация: 03.03.2009
Сообщений: 5
|
Да надо полагать, только скорее отключить. Там же в этих настройках черт ногу сломит (ну по крайней мере для меня пока так , не претендую на знатока MS Visual Studio).
Вот только что создал с нуля новый проект ваще без инклудов, и всё работает )) Выскакивает пара предупреждений (warning), мол, у вас тут две функции не объявлены, а так всё ОК Последний раз редактировалось Achilles; 05.03.2009 в 19:52. |
06.03.2009, 14:52 | #9 | |
Пользователь
Регистрация: 26.02.2009
Сообщений: 14
|
Цитата:
|
|
06.03.2009, 15:15 | #10 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
Код:
|