|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.09.2014, 16:18 | #1 |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Ввести имя в элемент структуры (массив символов)
Подскажите, что сделано не так в следующем коде?
Код:
Имя: Andrew Возраст: 30 Имя: Возраст: _ |
23.09.2014, 16:55 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
cin.getline(P[i].name, 32); наверное не учитывает нажатый энтер.
Не помню как из этого выкручивались. То ли cin.flush() то ли еще как.
I'm learning to live...
|
23.09.2014, 17:29 | #3 |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Прата С. пишет "Функция getline () читает целую строку, используя символ новой строки, который передан клавишей <Enter>, для обозначения конца ввода. "
По идее должно быть все в порядке. Но на деле почему-то не так |
23.09.2014, 18:11 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
После cin >> P[i].age; в буфере чего-то там остаётся и автоматом читается через getline без ожидания ввода пользователем. Пробуйте добавить вышеуказанный flush
|
23.09.2014, 18:19 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Тут уже обсуждался этот глюк. Порой на форуме по слову getline(). Было такое несколько раз.
I'm learning to live...
|
23.09.2014, 18:41 | #6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Ну, это не глюк, а особенности. Еще можно попробовать вводить длинные имена, в качестве возраста вбить цифры с пробелами. Я бы на учебных задачах не заморачивался и слепил работу с консолью лишь бы работало
|
23.09.2014, 19:14 | #8 |
Пользователь
Регистрация: 25.12.2013
Сообщений: 91
|
Необязательно! Но так интересно же, как его заставить работать.
Мне интересно как строку с клавиатуры ввести. С этим flush ничего не получилось. Я убрала getline() и стало нормально работать. Код:
Последний раз редактировалось marenko.lilia; 23.09.2014 в 19:58. |
23.09.2014, 19:22 | #9 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
23.09.2014, 19:58 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввести массив с клавиатуры. В полученном массиве найти минимальный элемент. Вывести его на экран | ok57 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 17.05.2013 05:07 |
Ввести последовательность символов | [ Senya Black ] | Помощь студентам | 1 | 08.05.2012 19:11 |
Ввести строку длиной до 30 символов | istavzev | Помощь студентам | 0 | 03.05.2012 12:31 |
невозможно ввести в поле более 30 символов | brutalis | БД в Delphi | 2 | 20.10.2011 11:25 |
Ввести имя файла с клавиатуры,открыть если существует,перименовать и переместить его | mulatoschka1990 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 23.10.2009 16:18 |