Я знаю, что у меня есть похожие вопросы, но я проверил их много и не нашел ответа, поэтому я надеюсь, что кто-то может мне помочь. Так что я пытаюсь сохранить некоторые строки в массивы, но некоторые из этих строк могут состоять из нескольких слов, поэтому я искал в Интернете и выяснял, что мне нужно использовать cin.ignore() и Getline. Я использовал их, как показано в моем коде ниже, но ошибка происходит во второй и третьей строках, где удаляется первая буква фамилии [0] и адрес [0]. Так почему это?БлагодаряGetline & cin.ignore в C++
Вот мой код:
int size;
cout<<"Please enter the number of entries"<<endl;
cin>>size;
cin.ignore();
string* firstname=new string[size];
string* surname=new string[size];
string* address=new string[size];
cout<<"First Name"<<endl;
for (int i=0;i<size;i++)
getline (cin, firstname[i]);
cout<<"Surname"<<endl;
cin.ignore();
for (int i=0;i<size;i++)
getline (cin, surname[i]);
cout<<"Address"<<endl;
cin.ignore();
for (int i=0;i<size;i++)
getline (cin, address[i]);
for (int i=0;i<size;i++)
{
cout<<"First Name "<<firstname[i]<<endl;
cout<<"Surname "<<surname[i]<<endl;
cout<<"Age "<<address[i]<<endl;
}
EDIT: Пример ввода/вывода
Пожалуйста, введите число записей
Имя
Джон
Майкл
Daniel
Radu
Фамилия
Laaksonen
Taro
Албот
Smith
Адрес
123 Ларкин Street
900 Ларкин Street
823 Ларкин Street
283 Ларкин Street
** Имя John
Фамилия aaksonen
Адрес 23 Ларкин Street
Имя Michael
Фамилия Taro
Адрес 900 Ларкин Street
Имя Daniel
Су RNAME Албот
Адрес +823 Ларкин Street
Имя Radu
Фамилия Смит
Адрес 283 Ларкин Street **
Жирный является вывод программы. Посмотрите, как L в Laaksonen отсутствует, а 1 в 123 отсутствует.
Можете ли вы показать пример ввода и ожидаемый выход? –
Почему, по-вашему, вам нужно «игнорировать»? Интересно, куда это письмо ушло ...? Также читайте о ['std :: vector'] (http://en.cppreference.com/w/cpp/container/vector). – BoBTFish