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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 13:50   #1
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию ввод string, getline

Не могу понять в чем ошибка. Даже гугл и мсдн не помогл . getline(cin, name) (пробовал getline(cin, name, '\n')) в первый раз все норм вводится, а во все последующие почему-то "пропускает" его. т.е. это выглядит вот так:



Код:
#include <iostream>
#include <string>
using namespace std;

 class employee
 {
 private:
	 string name;
	 long number;
 public:
	 void getdata()
	 {
		 cout << "Enter name: "; getline(cin, name);
		 cout << "Enter number: "; cin >> number;
	 }
	 void putdata()
	 {
		cout << "\nName: " << name 
			 << "\nNumber: " << number << endl;
	 }
 };

int main()
{
    int const EMPMAX=10;
	employee emparr[EMPMAX];
	int n=0;
	char yn;
	do
	{
		emparr[n++].getdata();
		if(n>=EMPMAX)
		{cout << "Full array" << endl; break;}
		cout << "Continue?(y/n)"; cin >> yn;
	}while(yn!='n');
	for(int j=0; j<n; j++)
		emparr[j].putdata();

   return 0;
   }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 17.04.2011 в 14:04.
Alex11223 вне форума Ответить с цитированием
Старый 17.04.2011, 14:37   #2
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

Код:
void getdata()
	{
		cin.sync();
		cout << "Enter name: "; getline(cin, name);
		cout << "Enter number: "; cin >> number;
	}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 17.04.2011, 14:45   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Cпасибо.
А, если не затруднит, можно поподробнее почему так?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.04.2011, 16:08   #4
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

магия istream :D

разделитель остается в потоке, и считывается getline-ом
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ cin.getline. Исправьте ошибку Jane-sad Помощь студентам 0 18.02.2011 15:46
getline(wcin, str) - лишний ввод Кипящий чайник Visual C++ 26 24.09.2010 00:51
getline kir_rik Общие вопросы C/C++ 14 11.09.2010 15:56
Процедуры: Ввод(text)-Вычисление(string)-Вывод(text) FYBVFPFYBC Помощь студентам 2 06.05.2010 23:15
Функция С++ getline() Golovastik Общие вопросы C/C++ 8 30.07.2009 00:20