0 / 0 / 0
Регистрация: 27.09.2016
Сообщений: 52
|
||||||
1 | ||||||
Безконечый цикл при использовании cin и getline()23.10.2016, 05:22. Показов 1836. Ответов 8
Метки нет Все метки)
(
Здравствуйте,
Есть вот такой простенький кусок кода:
0
|
|
23.10.2016, 05:22 | |
Ответы с готовыми решениями:
8
Почему портится поток cin при использовании функции getline Почему при использовании getline( std::cin, str ) строка считывается не так, как ожидается?
Что делает цикл "while(cin.getline(buf,l_buf))" ? |
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
||||||
23.10.2016, 07:45 | 2 | |||||
Строка 21:
- Вы применяли ignore к getline в 3 случаях выше, а тут Вы применяете его к cin. Может это неправильно? Добавлено через 12 минут Только так:
0
|
0 / 0 / 0
Регистрация: 27.09.2016
Сообщений: 52
|
|
23.10.2016, 08:42 [ТС] | 3 |
DemolitionMan, проблема в том, что некоторые имена могут иметь несколько слов,и их простым cin не прочитаешь. Что касается cin.ignore() - я пробовал его забрать после сin>>templ; всеравно безконечный цикл...
У меня этот код находится в while(char usrChar != 'q') если что, по этому и безконечный цикл. Но почему? Не могу понять
0
|
![]() 5869 / 4746 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
23.10.2016, 09:28 | 4 |
kozo,
Покажите код с циклом.
0
|
0 / 0 / 0
Регистрация: 27.09.2016
Сообщений: 52
|
||||||
23.10.2016, 09:30 [ТС] | 5 | |||||
Даценд,
0
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
||||||
23.10.2016, 10:05 | 6 | |||||
Что касается ignore, я находил тему где модераторы объясняли зачем он нужен и это есть в популярных ошибках вверху. Но я забыл зачем это все нужно и где это находится. Там что-то в потоке содержится какой-то мусор(перенос строки или что-то в этом роде), я забыл короче
![]() Добавлено через 16 минут Код опять какой-то бредовый получился ![]()
Бред, потому что перед 10 строкой есть ignore, а перед 12 - нет.
0
|
![]() 5869 / 4746 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|||||||||||
23.10.2016, 11:33 | 7 | ||||||||||
![]() Решение
kozo,
как-то так:
1
|
3434 / 2813 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
23.10.2016, 16:09 | 8 |
0
|
0 / 0 / 0
Регистрация: 27.09.2016
Сообщений: 52
|
|
23.10.2016, 22:22 [ТС] | 9 |
Даценд, помогло,спасибо! Тоесть cin. ignore() нужно писать только после cin>> а не после getline()
0
|
23.10.2016, 22:22 | |
23.10.2016, 22:22 | |
Помогаю со студенческими работами здесь
9
Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
При множественном наследовании не работает getline(std::cin, ?) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |