![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Hawaii |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 5.6.2007 Репутация: нет Всего: нет |
Пытаюсь ввести две строки через cin.get(). Первая строка вводится, а вторая нет. В чем проблема?
Программа сравнивает две строки (моя версия strcmp(str1, str2)... )
Это сообщение отредактировал(а) Hawaii - 31.7.2007, 01:12 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Извини, но никакой критики по производительности не выдерживает. Хорошая функция как минимум не должна вызывать strlen и иметь так много ветвлений. Кроме того, функция сравнения должна принимать аргументы типа const char*. юзай cin.getline() и в случае чего, после ввода первой строки cin.sync(), хотя не должно понадобиться. |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
Hawaii,
Проблема в том, что метод get() работает и принимает символы до того момента, пока не встретит символ окончания (по умолчанию "ввод") Все что до ВВОДА, заносится в буфер, но сам символ \n из очереди клавы НЕ УБИРАЕТСЯ Выход: между вызовами cin.get() поставить cin.ignore(), чтобы выкинуть ненужный символ и вводить новую строку P.S. Это при условии, что ты вводишь строки через нажатие ВВОДА А вообще, правильно сказал JackYF: юзай getline() Добавлено через 38 секунд
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| NoNo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
разберись с потоками....
|
|||
|
||||
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Попробуй так:
|
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
-------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Строго говоря её нет в стандартах. В си есть fgets(); ИМХО getline(cin, str) удобнее cin.getline(buf,bufsize) -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Dronchik |
|
|||
![]() Звукач ёмаё ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 1.5.2007 Репутация: 0 Всего: 37 |
И ещё. С какого ... консоль выведет русские буквы. Нужно выставить локаль или плоьзоваться функцией CharToOem.
-------------------- Вместо слов делай дело, от которого ты фанатеешь. (с) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |