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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2009, 20:21   #1
(*_*)
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 30
Вопрос Проблема с функцией cin.getline. Подскажите советом.

Помогите! Я просто уже не знаю что делать. Имеется двунаправленный список в котором с помощью ниже приведенной функции нужно изменить элемент с номером k, но после того как вводишь с клавиатуры номер (k), функция cin.getline не выполняется. Использование других функций типа: scanf() или gets(), приводят к такому же результату. Однако если явно присвоить значение k без использования cout и cin, то все работает. Почему так происходит? И можно как то это исправить?


Код:
void izm_elem (void)
{
int k;
cout << "Введите № записи для изменения: ";
cin >> k;
cout << endl;
student *p = beg;
for (int i = 1; p!=0; i++, p=p->next) {

if (k == i) {

cout << "ФИО: ";
cin.getline(vm[0],20); // Не выполняется :-( 
p->FIO = vm[0];
cout << endl;
cout <<"Номер группы: ";
cin >> p->g.number;
cout << endl;
cout <<"Кол-во человекl: ";
cin >> p->g.number_of;
cout << endl;
cout <<"Дата: " << endl;
cout <<"Day: ";
cin >> p->dat.day;
cout << endl;
cout <<"month: ";
cin >> p->dat.month;
cout << endl;
cout <<"year: ";
cin >> p->dat.year;
cout << endl;
cout <<"История: ";
cin >> p->history;
cout << endl;
cout <<"Нн. язык: ";
cin >> p->in_yaz;
cout << endl;
break;
}
}
}
(*_*) вне форума Ответить с цитированием
Старый 04.03.2009, 22:18   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Напишите cin.getline два раза подряд. Это помогает всегда. Аналогично с gets и scanf. Последний вообще для строк не годится.
MaTBeu вне форума Ответить с цитированием
Старый 04.03.2009, 22:21   #3
KVF
Пользователь
 
Регистрация: 27.07.2008
Сообщений: 30
По умолчанию

покажи свой ввод
KVF вне форума Ответить с цитированием
Старый 04.03.2009, 22:43   #4
(*_*)
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 30
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Напишите cin.getline два раза подряд. Это помогает всегда. Аналогично с gets и scanf. Последний вообще для строк не годится.
Спасибо! Все заработало
(*_*) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, не могу разобраться с функцией INSERT KARUSHEV БД в Delphi 27 17.07.2009 17:54
проблема с рекурсивной функцией world12_tk Помощь студентам 2 04.03.2009 20:57
Проблема с функцией замены... dast Microsoft Office Excel 6 09.10.2008 20:30
проблема с функцией atoi Darw1n Общие вопросы C/C++ 2 08.10.2008 23:21
codeblocks - проблема с функцией main() хиппан Общие вопросы C/C++ 2 04.01.2008 19:41