Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2009, 22:13   #1
AxenicX
Пользователь
 
Регистрация: 21.09.2009
Сообщений: 65
По умолчанию Не работает с первого раза getline

Проблема в следующем:
заношу данные в переменную с помощью оператора >>
Но потом в цикле при вызове функции getline она при первом вызове не работает вообще, тоесть при отладке компилятор даже не передает управление программе, чтобы я ввел число
П.С. Когда-то эту проблему решал вызов какой-то функции перед вызовом getline, но эту функцию я забыл
AxenicX вне форума Ответить с цитированием
Старый 28.11.2009, 23:18   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
cin.ignore();

// or

cin.sync();

// перед getline
netrino вне форума Ответить с цитированием
Старый 28.11.2009, 23:43   #3
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от AxenicX Посмотреть сообщение
Проблема в следующем:
заношу данные в переменную с помощью оператора >>
Но потом в цикле при вызове функции getline она при первом вызове не работает вообще, тоесть при отладке компилятор даже не передает управление программе, чтобы я ввел число
П.С. Когда-то эту проблему решал вызов какой-то функции перед вызовом getline, но эту функцию я забыл
Не знаю, правильно ли я понял, в чем проблема. Если да, то есть такой вариант: после считывания переменной мы ведь остаемся в той же строке, где была переменная. Если надо считать полностью следующую строку, то проблемка есть, теоретически считывается "getline" до конца текущая строка. Поэтому первый getline работает нестандартно - он считывает до конца строку, в которой мы были и перенос на следующую строку (даже если в текущей мы уже вконце, в следующую мы ведь еще не попали). Можно дописать лишний getline перед циклом и должно заработать.
LeBron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повысить громкость раза в 3. Alex Cones Софт 7 23.10.2009 04:13
Комп не с первого раза включается RockForr Компьютерное железо 5 18.09.2009 13:57
Функция С++ getline() Golovastik Общие вопросы C/C++ 8 30.07.2009 00:20
Проблема с функцией cin.getline. Подскажите советом. (*_*) Общие вопросы C/C++ 3 04.03.2009 22:43
Загружается со второго раза Xardas Компьютерное железо 10 10.03.2008 08:51