![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Shipa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.10.2009 Репутация: нет Всего: нет |
Люди добрые, помогите мне, неумехе несчастному...
короче, есть прога на си:
Оформить её можно поразному, суть не изменится. Программа проверяет ввод: число\буква. Суть в том, что в отдельной программе процедура pumba выполнится идеально, но как только втыкаешь её в цикл, то начинаются жесткие лаги..... Почему так происходит??? Что с этим делать?? вообще, надо создать простенькую фильтрацию входных данных, может это как-то по другому лучше делать?? Это сообщение отредактировал(а) Shipa - 26.10.2009, 14:59 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
легко. Сначала читаешь строку через fgets(buf, size_of_buffer, stdin), затем парсишь ее уже через sscanf.
|
|||
|
||||
Shipa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.10.2009 Репутация: нет Всего: нет |
bsa, можно поподробнее, если можно, просто я слабо ориентируюсь в си пока что...
|
|||
|
||||
XYZ010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 26.10.2009 Репутация: нет Всего: нет |
А да к все понятно функции то передать надо что то а вы ее пустую запускаете.
вот так поппробуйте инициализировать |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
XYZ010, ты думаешь, что убрав возвращаемое значение что-то поменяется? А зря!
Shipa, что делает scanf() знаешь? Она читает стандартный ввод на предмет подходящих шаблону символов, затем парсит и записывает значение в переменную. Если попадаются некорректные символы, то они не забираются из потока, таким образом, следующая команда scanf опять их и считает. Чтобы этого не происходило, нужно сначала прочитать всю строку в буфер из стандартного ввода, а затем уже отправить на разбор. С буфером работает уже функция sscanf(). |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Попробуйте после scanf воткнуть fflush(stdin);
|
|||
|
||||
XYZ010 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 26.10.2009 Репутация: нет Всего: нет |
я не говорю о том что функция что то возвращает она у вас получает все что угодно. Зачем? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
XYZ010, почитай книжку по Си. Что сейчас в С99, я не знаю, а раньше было так: f(void) - функция которая не принимает никакие параметры, а f() - функция, количество параметров которой не определено.. В С++ f(void) и f() - одно и тоже.
|
|||
|
||||
Shipa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 26.10.2009 Репутация: нет Всего: нет |
всем спасибо, я разбил строку посимвольно ивсе ок!
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
мазохист...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |