![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| dimbas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.5.2009 Репутация: нет Всего: нет |
Нужно ввести с клавиатуры строку из 5 символов. если их больше - повторить запрос.
Код такой:
Если вводишь 5 или меньше - все в порядке. Если вводишь 6 - тоже все хорошо, запрос повторяется. А если 7 или больше - то поток не чистится, и символы начиная с 7-го в следующей итерации считываются сами (то есть они в потоке остались), и цикл завершается. Подскажите, что не так Это сообщение отредактировал(а) dimbas - 21.6.2009, 18:22 |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
|
||||
|
|||||
| dimbas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.5.2009 Репутация: нет Всего: нет |
Спасибо.
А можно ли все-таки с char'ом? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
|
|||
|
||||
| dimbas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.5.2009 Репутация: нет Всего: нет |
дело в том, что нужно предусмотреть и случаи, когда юзер введет, в данном случае, больше 10 символов.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Вы хоть сами понимаете чего хотите? В первом варианте это предусмотрено было, вы захотели через char массив. Определитесь сперва с задачей. Это сообщение отредактировал(а) azesmcar - 21.6.2009, 19:24 |
|||
|
||||
| dimbas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.5.2009 Репутация: нет Всего: нет |
Строка должна быть максимум из пяти символов. Если вводится от одного до пяти символов, то все хорошо.
Если же ведено 6 или более символов, то требуется повторить ввод. То есть нельзя написать line[10] или даже line[255])). В принципе, ваш код со стрингами подходит, если нельзя чарами (или сложно), то забейте) |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| dimbas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.5.2009 Репутация: нет Всего: нет |
Допустим, задание: использовать массив char.
Вот я и выделял 7: 5+1 для '\0', и еще один, чтобы при условии while (strlen(s)>5) остаться в цикле |
|||
|
||||
| AnLun |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 3.1.2008 Репутация: нет Всего: нет |
to dimbas: Вам память жалко, больше массив создать?
|
|||
|
||||
| dimbas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.5.2009 Репутация: нет Всего: нет |
Понимаете, задание такое
|
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
Задание использовать как можно меньше памяти? )
Я например если приходится char * юзать, сразу про запас 4096 длину строки делаю... -------------------- ![]() |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
||||
|
||||
| dimbas |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.5.2009 Репутация: нет Всего: нет |
||||
|
||||
| ViruZZ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 21.6.2009 Репутация: нет Всего: нет |
to azesmcar: Если в Вашем коде перед циклом поставить какой либо ввод, к примеру
то getline захватывает предыдущий enter: " Enter n 1 enter string: enter string: " Каким образом можно очистить поток в этом случае?? В принципе, в теме спрашивалось об очищении потока, чего в Вашем коде не увидел) Это сообщение отредактировал(а) ViruZZ - 21.6.2009, 20:56 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |