我知道這裏有類似的問題,但我查了很多,沒有找到答案,所以希望有人能幫助我。 所以我試圖做的是將一些字符串存儲到數組中,但其中一些字符串可能包含多個單詞,所以我搜索了互聯網,發現我必須使用cin.ignore()和Getline。我使用了它們,正如我在下面的代碼中所看到的,但錯誤發生在第二個和第三個字符串中,其中第一個字母姓氏[0]和地址[0]被刪除。那爲什麼呢?由於c + +中的Getline&cin.ignore
這裏是我的代碼:
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;
}
編輯:採樣輸入/輸出
請輸入條目
數量4
名
約翰
邁克爾
丹尼爾
拉杜
姓
Laaksonen
太郎
Albot
史密斯
地址
123拉金街
900拉金街
823拉金街
283拉金街
**的名字John
姓aaksonen
地址23拉金街
名字Michael
姓太郎
地址900拉金街
名字丹尼爾
蘇RNAME Albot
地址823拉金街
名拉杜
姓史密斯
地址283拉金街**
粗體是程序的輸出。看看Laaksonen中的L如何丟失,123中的1丟失。
您能顯示樣本輸入和預期輸出嗎? –
你爲什麼認爲你需要「忽略」?我想知道那封信去了哪裏?另外,請閱讀['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)。 – BoBTFish