2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
1

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

20.05.2014, 15:05. Показов 508. Ответов 3
Метки нет (Все метки)

вопрос про 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();
        }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2014, 15:05
Ответы с готовыми решениями:

Ввод данных в структуру - cin.getline
Добрый день, Задача загрузить информацию в структуку Songs (автор, имя, год) . Однако когда в...

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть...

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с...

Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void...

3
7107 / 6100 / 2782
Регистрация: 14.04.2014
Сообщений: 26,257
20.05.2014, 19:12 2
Перед cin.getline() делай cin.ignore();
0
Модератор
Эксперт С++
11359 / 9318 / 5600
Регистрация: 18.12.2011
Сообщений: 24,862
20.05.2014, 19:25 3
Лучше после cin >> current->year; прочитать оставшийся в потоке символ конца строки:
C++
1
(cin>>current->year).get();
0
0 / 0 / 0
Регистрация: 20.04.2014
Сообщений: 3
20.05.2014, 19:38 4
std::cin.clear();
std::cin.sync();
std::cin.getline();

Работает почти всегда.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2014, 19:38

Отличие функции cin.get и cin.getline
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get...

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

getline(cin, str) и cin>>
Добрый день. Есть код: ... string str; int N; cin&gt;&gt; N; getline(cin, str); cout&lt;&lt;str&lt;&lt;endl;...

cin.getline и cin.ignore
Есть кусок кода в котором не могу разобраться. Если cin.ignore() есть, то теряется первый вводимый...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.