Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 31
1

Пропускается строчка getline

10.08.2016, 15:14. Показов 2079. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В коде есть такой фрагмент, но при его выполнении программа пропускает выполнение первого ожидания ввода строки и сразу переходит ко второй строчке. Помогите разобраться в чем моя ошибка.
C++
1
2
3
4
5
6
7
8
                        cout << "Введите новый номер записи" << endl;
                cin.getline(a[n], sizeof(a[n]));
                cout << "Введите новую Фамилию" << endl;
                cin.getline(a[n + 1], sizeof(a[n + 1]));
                cout << "Введите новое Имя" << endl;
                cin.getline(a[n + 2], sizeof(a[n + 2]));
                cout << "Введите новое Отчество" << endl;
                cin.getline(a[n + 3], sizeof(a[n + 3]));
Результат выполнения фрагмента:
Пропускается строчка getline
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2016, 15:14
Ответы с готовыми решениями:

Почему пропускается getline?
//функция ввода вопросов void create () { string question; int key; ofstream...

Пропускается cin.getline
Здравствуйте. Функция поиска void search() { char str; int arr_1, arr_2,col_rezult = 0;...

Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи)
Всем доброго времени суток! Помогите написать 2 программки. Теоретически (по моему мнению) они...

Можно ли зделать так, чтобы строчка имела такую же ширину как и предыдущая строчка?
Можно ли зделать так, чтобы строчка имела такую же ширину как и предыдущая строчка?

4
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
10.08.2016, 15:21 2
Сделай cin.clear() перед тем как вводить.
1
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
10.08.2016, 15:25 3
еще вариант отловить нажатие
C++
1
std::cin.get()
у вас скорее всего в потоке остался энтер

Добавлено через 1 минуту
или еще варианты кроме того который предложил John Prick,
C
1
fflush(stdin)
помойму работает если вы не писали
C++
1
std::ios::sync_with_stdio(false);
1
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 31
10.08.2016, 17:41  [ТС] 4
Ага, похоже в потоке ввода остался конец строки. Я плохо искал уже есть такая тема: Пропускается cin.getline
Вроде понял теперь.
Спасибо за ответы!)
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
10.08.2016, 17:57 5
Распространенные ошибки
1
10.08.2016, 17:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.08.2016, 17:57
Помогаю со студенческими работами здесь

Отличие getline() от cin.getline()
Чем отличается getline() от cin.getline() ?

Объясните разницу между "cin.getline" и "std::getline"
string a; cin.getline(a); getline(cin, a);в чем разница между &quot;cin.getline(a);&quot; и &quot;getline(cin,...

Пропускается ввод
Собственно вопрос: почему при вводе второго элемента массива структур пропускается ввод имени? ...

Пропускается ввод
Есть код (пишу в Visual Studio 17 Enterprice) int dimension = 2; // если тут будут бОльшие...

Getline() "съедает" следующий getline()
Всем привет! Пишу небольшое консольное приложение. Идея такова: в карточке пользователя библиотеки...

Почему пропускается цикл
пишу сюда чтобы не плодить темы. помогите понять тугоумному почему в моем коде пропускается цикл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru