![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
... получается что getchar и getc оставляют за собой '\n' в буффере как и scanf(); и за ними надо почистить буффер иначе если не дай бог следующей инструкцией будет gets() , то всё полетит к чертям. так это или нет? , а то что-то я запутался. :(
|
|||
|
||||
_Natalia_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.3.2007 Репутация: нет Всего: нет |
а это для того чтобы из файла прочитать или из стандартного stdinа? потому что если из файла - то не понятно, а если из stdin, тогда почему бы обычным cin не попробывать? ну а для очистки буфера - cin.ignore(100,'\n') к примеру
|
|||
|
||||
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
_Natalia_, я С++ не знаю, пока только С
![]() это из stdin. а разве getchar умеет читать из файла? |
|||
|
||||
_Natalia_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.3.2007 Репутация: нет Всего: нет |
умеет, ему вообще без разницы откуда читать, и тем более что stdin это такой же файловый дескриптор, как и для файлов.
ну а по идеи то ignore в твоем случае должен сработать |
|||
|
||||
ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
ну не знаю, может это в с++ он читает что хочет а в С нет, так как только что попробовал и компиль говорит что слишком много аргументов в гетчаре...
по крайней мере так не пашет...
посмотри прототип тут http://www.phim.unibe.ch/comp_doc/c_manual...NS/getchar.html |
|||
|
||||
drZmeu |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 22.11.2006 Репутация: нет Всего: 1 |
Правильно что непашет getchar принимает символы с клавиатуры и заносит их в буфер! Напр:
Если мне конечно память неизменяет. --------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code] |
|||
|
||||
_Natalia_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.3.2007 Репутация: нет Всего: нет |
хм... да, сейчас почитала, он только для stdin, извиняйте
Так, а теперь объясни мне что тебе было нужно? если ты не хочешь чтобы оставался '\n', тогда у тебя нет выбора, придется делать while (getchar() != '\n'), к тому же может получится, что у тебя на вводе будет не один символ, а больше (ну ошибка пользователя, или еще что). |
|||
|
||||
0lmer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 3.12.2006 Репутация: нет Всего: -1 |
если в буфере перед gets() остается '\n' я обычно ставлю перед gets() getchar() или cin.get(). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |