さて、実行中のプログラムがあり、開始時にデータメンバーにデータを入力するように求められます。プログラムは、3 つの異なるオブジェクトに対してこれを行います。
私の問題は、実行時に最初のオブジェクトのデータを入力した後、プログラムが 2 番目の名前の入力をスキップし、次のオプションに直接進むことです。3 番目のオプションの名前についても同じことが行われます。また、データを変更する機会が得られたときにもこれを行います。
「CD 名を入力してください: Microsoft Word
1ゲーム
2ワード
3-コンパイラ
4-スプレッドシート
5Dベース
6-プレゼンテーション
CD のタイプに対応する番号を入力してください: 2
入力 CD コスト: 15.23
Enter CD Name: 1-Game <- ((入力部分をスキップして、直接メニューに移動します!))
2ワード
3-コンパイラ
4-スプレッドシート
5Dベース
6-プレゼンテーション
CD のタイプに対応する番号を入力してください:"
問題はメンバー関数にある可能性が最も高いですが、何が問題なのかわかりません。
これが私のメンバー関数コードです:
void CDX::LoadInfo() //Prompts, validates and sets data members
{
cout << "Enter CD Name: ";
getline(cin, Name);
int choice=0;
do
{ cout << "1-Game\n2-Word\n3-Compiler\n4-Spreadsheet\n5-Dbase\n6-Presentation" << endl;
cout << "Enter the number that corresponds with the CD's Type: ";
cin >> choice;
} while ((choice <1)||(choice>6));
switch(choice)
//Code for case-switch statement goes here)
それで、私は何が欠けていますか?これはバッファの問題ですか、それともスキップする原因となる何らかの方法でコードを途中で終了していますか?