anonymous@RULINUX.NET~# Last login: 2024-11-05 13:26:26
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

[Глупый вопрос] Проскакивает getchar()

Есть сферическая функция в вакууме:

c
void pressEnter()
{
    printf("Press Enter.");
    getchar();
}
 

Эта функция проскакивает не дожидаясь нажатия Enter с клавиатуры. getchar() возвращает 10 (это ЕМНИП и есть Enter).

Сабж: Откуда этот Enter появляется, и как избежать подобного поведения?

anonymous(*) (2009-11-21 17:18:00)

Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.1

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 17:18:00
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

Алсо, в проге часто вызываются printf() и scanf()

anonymous(*)(2009-11-21 17:27:21)

Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.1
[#] [Добавить метку] [Редактировать] Ответ на: Re: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 17:27:21
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

Вот где собака зарыта:

c
    printf("some string.\n\n"); // Один из символов \n почему-то попал в stdin
    printf("somestring.\n"); // исправил на такой вариант и все стало нормально
 

anonymous(*)(2009-11-21 18:57:40)

Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.1
[#] [Добавить метку] [Редактировать] Ответ на: Re: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 18:57:40
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

> исправил на такой вариант и все стало нормально
Наврал. Забыл что для тестирования поставил в функцию 2 getchar()

anonymous(*)(2009-11-21 19:03:33)

Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.1
[#] [Добавить метку] [Редактировать] Ответ на: Re: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 19:03:33
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

\n попадает в stdin после вызова scanf("%i", &selection);

Это нормальное поведение для функции?

anonymous(*)(2009-11-21 19:16:15)

Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.1
[#] [Добавить метку] [Редактировать] Ответ на: Re: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 19:16:15
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

да. Прекращай заниматься быдлокодингом.

amoralyrr(*)(2009-11-22 16:01:37)

Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091106 Shiretoko/3.5.5
[#] [Добавить метку] [Редактировать] Ответ на: Re: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 19:16:15
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

>Это нормальное поведение для функции?

Вряд ли.

anonymous(*)(2009-11-22 17:29:12)

Opera/9.80 (X11; Linux i686; U; ru) Presto/2.2.15 Version/10.01
[#] [Добавить метку] [Редактировать] Ответ на: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 17:18:00
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

Бля, чё за тупая подсветка кода? Синий printf на синем фоне...

xTERM(*)(2009-12-04 20:00:33)

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 MRA 5.5 (build 02842) Firefox/3.5.5 (.NET CLR 3.5.30729)
[#] [Добавить метку] [Редактировать] Ответ на: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-11-21 17:18:00
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

The function fpurge() clears the buffers of the given stream. For output streams this discards any unwritten output. For input streams this discards any input read from the underlying object but not yet obtained via getc(3); this includes any text pushed back via ungetc(3). See also fflush(3).

Вот, пользуйся.

anonymous(*)(2009-12-04 20:34:04)

Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091118 Gentoo Firefox/3.5.5
[#] [Добавить метку] [Редактировать] Ответ на: Re: [Глупый вопрос] Проскакивает getchar() от anonymous 2009-12-04 20:34:04
avatar
Скрыть

Re: [Глупый вопрос] Проскакивает getchar()

Спасибо тебе анонимус, а то я такой велосипед сваял, что рассказывать стыдно :)

anonymous(*)(2009-12-04 23:15:08)

Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.1
Этот тред читают 3 пользователя:
Анонимных: 3
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!