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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
#1

Последовательный ввод двух строк - C++

04.09.2012, 00:41. Просмотров 730. Ответов 6
Метки нет (Все метки)

мне нужно ввести две строки одна за другой,но у меня сразу предлагается ввод двух строк
C++
1
2
3
4
5
6
7
8
9
10
string name,for_number;
                vector<int> number;
 
                cout << "введите ФИО абонента" << endl;
 
                getline(cin,name);
 
                cout << "Введите номер абонента" << endl;
 
                getline(cin,for_number);
Миниатюры
Последовательный ввод двух строк  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 724
04.09.2012, 00:50     Последовательный ввод двух строк #2
это весь код ваш?
по идее там нет ошибки нигде и все работает
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
04.09.2012, 00:55  [ТС]     Последовательный ввод двух строк #3
это весь код,в котором возникает ошибка
я знаю,что вроде нет ошибки,но она есть и я понятия не имею почему она появилась
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.09.2012, 02:34     Последовательный ввод двух строк #4
Цитата Сообщение от alexey31415 Посмотреть сообщение
это весь код,в котором возникает ошибка
я знаю,что вроде нет ошибки,но она есть и я понятия не имею почему она появилась

Не по теме:

Вроде бы вы не первый день на форуме? Столько уже было сообщений на эту тему, неужели не попадались?

Перед getline() ввод через cin >> делаете? В потоке ввода остаётся символ новой строки '\n'. getline() считывает его первым, для неё это - пустая строка. Символ '\n' извлекается из очереди, но не сохраняется, в строку ввода помещается '\0'. Флаг ошибки НЕ устанавливается. После этого переход к следующему вводу. После cin >>, перед getline() нужно очистить поток ввода, например, так:
C++
1
while (cin.get() != '\n');
или, хотя бы, извлечь один символ '\n' :
C++
1
cin.get();
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
04.09.2012, 09:00  [ТС]     Последовательный ввод двух строк #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Столько уже было сообщений на эту тему, неужели не попадались?
видел однажды,но что-то я не вспомнил

спасибо,я знаю об этой проблеме,но как-то не учёл
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
04.09.2012, 11:49     Последовательный ввод двух строк #6
В идеале хватит функции std::cin.sync() перед вводом строки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2012, 13:21     Последовательный ввод двух строк
Еще ссылки по теме:

Ввод и вывод строк C++
Ввод массива строк C++
Соединение 2-х строк, ввод их с клавиатуры C++
C++ Ввод строк целиком
Ввод строк с файла C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.09.2012, 13:21     Последовательный ввод двух строк #7
Цитата Сообщение от Toshkarik Посмотреть сообщение
В идеале хватит функции std::cin.sync() перед вводом строки.
Да, но в линукс, например, не работает.
Yandex
Объявления
04.09.2012, 13:21     Последовательный ввод двух строк
Ответ Создать тему
Опции темы

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