![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Grek74 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.1.2008 Репутация: нет Всего: нет |
Помогите пожалуйста.
Я С++ Builder 6 осваивать пытаюсь с помощью книги, там в написано например "#define eof 27" , тоисть когда я нажимаю на Esc то должен происходить end-of-file , окончание данной операции, но неработает :( Вот неработающий пример :
Что сделать подскажите...
Это сообщение отредактировал(а) archimed7592 - 17.1.2008, 16:40 |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Это ты такой вывод сделал? Или в книге написано? Ввод завершится когда нажмёшь ctrl+Z -> enter -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Grek74 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.1.2008 Репутация: нет Всего: нет |
Как я понял из книги , то когда я нажимаю Esc то должен завершиться "while" и начаться "printf", но у меня совсем ничего непроисходит :( а все остальные примеры в книге с использованием "define eof" |
|||
|
||||
ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
это макрос, который осуществляет чтение из stdin и выход осуществляется либо по Ctrl+Z, либо по Enter... Тебе вместо него надо использовать getch() (судя по логике программы)
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Ты плохо понял - по нажатию esc выход не произойдёт. Произойдёт он по ctrl+z. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Grek74 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.1.2008 Репутация: нет Всего: нет |
Вот цитата из книги: Если обозначить символическую константу, задающую значения признака конца ввода с клавиатуры EOF, то, воспользовавшись оператором #define, в начале программ ввода данных с клавиатуры мы можем написать: #define eof 27 // признак конца ввода символов с клавиатуры. ama_kid - тоисть в книге неправильно написан пример? Добавлено через 10 минут и 43 секунды попробовал с "Ctrl+z" , просто появляется "^Z" а дальше всё также :( |
|||
|
||||
ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
я не знаю, как написано в книге, но в принципе я недалек от мысли, что авторы книг специально вводят небольшие погрешности в примеры, дабы изучавший, разбираясь, лучше усвоил уроки...
![]() И вообще, если я правильно помню, при вводе в stdin клавиша ESC ничего не кладет в буфер - она выполняет очистку введенного... Поэтому есть подозрение, что тебе таким макаром не считать ESC... -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
Grek74 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.1.2008 Репутация: нет Всего: нет |
А немогли бы вы исправить код, на правильный чтобы я понял и отвязался? ![]() |
|||
|
||||
ama_kid |
|
||||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||||
|
|||||||
Grek74 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.1.2008 Репутация: нет Всего: нет |
Большое спасибо!!!
![]() |
|||
|
||||
archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Ок, давай учиться читать: где в этом тексте ты увидел, что после этого концом ввода будет именно ESC?
Добавлено через 1 минуту и 40 секунд ps. Если вопрос решён, поставь соответствующую галочку. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
warmonger_ |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 7.7.2007 Где: г. Киев Репутация: 1 Всего: 3 |
![]() --------------------
Make everything as simple as possible, but not simpler.Albert Einstein |
|||
|
||||
Grek74 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.1.2008 Репутация: нет Всего: нет |
ну, в книге написано что типо 27 - это код Esc... |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
![]() Могу только посоветовать обзавестись другой книгой. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
digitech |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 1.4.2007 Репутация: нет Всего: 1 |
А для чего тогда getchar(); если getch(); есть?
|
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Где есть? В моём компиляторе нету ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
digitech |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 1.4.2007 Репутация: нет Всего: 1 |
Ладно, это понятно. А как быть, если я использую getch(); то при нажатии на enter не происходит перенос на следующую строку, но зато выходит из цикла при нажатии esc. А если я использую getchar(); то происходит перенос на следующую строку, но зато не происходит выход при нажатии esc.
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
такой функции в стандарте нет ![]() |
|||
|
||||
digitech |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 1.4.2007 Репутация: нет Всего: 1 |
Не, ну а как тогда быть с выходом из цикла (кроме getch();)? Что вообще может считать ESC? Может я и неправильно выражаюсь, прошу отнеститись с пониманием - я новичок.
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
Решается платформозависимыми функциями. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |