Форум программистов, компьютерный форум CyberForum.ru

Некорректно считывает структуру с cin.getline - C++

Войти
Регистрация
Восстановить пароль
 
evelolka
 Аватар для evelolka
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
20.05.2014, 15:05     Некорректно считывает структуру с cin.getline #1
вопрос про cin.getline
когда ввожу спомощью cin.getline после 1ого ввода с нажатием "в" пропускается ввод 1 элемента структуры(имя) и сразу вводится фамилия
используя gets_s такой же результат
в чём проблемка , а то не пойму никак


структурка

C++
1
2
3
4
5
6
struct WORKER
   {
       char family[100], name[100], dolzhnost[100] ;
       long int year ;
       WORKER* next;
   };
ввожу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
while( c == 'в' )
        {
            if ( head != 0 ) 
                { 
                    current -> next = new WORKER ; 
                    current = current -> next ; 
                }
            else     
                { 
                    head = new WORKER ; 
                    current = head ;   
                }
 
            cout<<"\nВведите имя" << endl ;
            cin.getline( current -> name , 100 );
            cout << "Введите фамилию" << endl ;
            cin.getline( current -> family , 100 ) ;
            cout << "Введите должность" << endl ;
            cin.getline( current -> dolzhnost , 100 ) ;
            cout << "Введите год поступления на работу" << endl ;
            cin >> current -> year ;
            schetchik_goda += current -> year ;
            current -> next = 0 ;
            cout << "Ввести данные?(в/н)" << endl ;
            c = _getche();
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2014, 15:05     Некорректно считывает структуру с cin.getline
Посмотрите здесь:

cin.getline скушал C++
Проблема с cin.getline(); C++
C++ cin.getline() не выполняется
cin.getline() не читает 1 символ C++
C++ cin.getline() не читает строку
getline(cin, ); C++
C++ Setlocal и cin.getline
Функция cin.getline() C++
Не работает cin.getline(buf, 20); C++
Пропускается cin.getline C++
Ввод данных в структуру - cin.getline C++
Функция getline(cin,.) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
20.05.2014, 19:12     Некорректно считывает структуру с cin.getline #2
Перед cin.getline() делай cin.ignore();
zss
Модератор
Эксперт С++
 Аватар для zss
6056 / 5659 / 1829
Регистрация: 18.12.2011
Сообщений: 14,454
Завершенные тесты: 1
20.05.2014, 19:25     Некорректно считывает структуру с cin.getline #3
Лучше после cin >> current->year; прочитать оставшийся в потоке символ конца строки:
C++
1
(cin>>current->year).get();
palec_vverh
0 / 0 / 0
Регистрация: 20.04.2014
Сообщений: 3
20.05.2014, 19:38     Некорректно считывает структуру с cin.getline #4
std::cin.clear();
std::cin.sync();
std::cin.getline();

Работает почти всегда.
Yandex
Объявления
20.05.2014, 19:38     Некорректно считывает структуру с cin.getline
Ответ Создать тему
Опции темы

Текущее время: 20:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru