ループを使用して配列に文字列を入力しようとしています。私の問題は、名前を入力するためにループに入ると、ベクトルの最初のスロットに空白行が即座に入力されることです。なぜこれが起こるのですか?そして、どうすれば修正できますか。私のコードスタイルの欠如を気にしないでください、私は今年の冬にクラスを始める前にプログラミングの知識を取り戻そうとしている初心者です...
出力例を次に示します。
How many people are in your family?
4
Please enter the names of all of your family members
check name:
Please enter the names of all of your family members
Matt
check name:Matt
Please enter the names of all of your family members
Evan
check name:Evan
Please enter the names of all of your family members
Michelle
check name:Michelle
Matt
Evan
Michelle
これは私のコードです:
vector<string> Names;
bool complete=0;
while(!complete)
{
int number;
cout << "How many people are in your family?" << endl;
cin >> number;
for(int i=0; i<number; i++)
{
string names;
cin.clear();
cout << "Please enter the names of all of your family members" << endl;
getline(cin,names);
Names.push_back(names);
cout << "check name:" << names << endl;
}
complete = 1;
}
for (int i=0; i< Names.size(); i++)
{
cout << Names[i] << endl;
}