これは初めてstackoverflowを使用しています。私はgetlineに関して必要な情報を見つけることができませんでした。私はエンジニアリング転送のための簡単なプログラミングクラスに入っているので、私たちが書いたコードはかなり簡単です。私がここでやろうとしているのは、ユーザーが定義した数の質問と回答を2つの異なる配列に入れていることだけです。私は一部を入力答えだけでなく、ファイルへのセーブデータを指摘getline +の文字列について私は何を理解していませんか?
int main()
{
srand((unsigned)time(0));
string quest1[100], answ1[100];
int size1, x = 0, num, count1, visit[100], shuffle[100];
fstream flashcard1;
cout << "flashcard.cpp by NAME\n" << endl;
cout << "This program allows user to manipulate questions and answers for studying.\n" << endl;
cout << "\nHow many flash cards will be entered(MAX 100)? ";
cin >> size1;
cout << endl;
while(x < size1)
{
cout << "Enter Question: ";
getline(cin , quest1[x]);
cout << endl;
x = x++;
/*
cout << "Enter Answer: " << endl;
getline(cin,answ1[x]);
cout << endl;
flashcard1.open("flashcard1.dat", ios::app);
flashcard1 << quest1[x] << " " << answ1[x] << endl;
flashcard1.close();
cout << "Data Stored." << endl;
*/
}
}
:私のwhileループは(私はそれが破壊停止する場合は、単に確認するためにforループを使用しますがしばらくに切り替えた)このようになりますデバッグ用ですプログラムを実行すると、最初の質問のgetlineはスキップされ、2番目の "質問入力"ループが表示され、getlineは残りの部分に対して機能します。したがって、size1が5の場合、プログラムは配列の位置1-4だけを塗りつぶします。助けてください。 これは、フラッシュカードを作成してシャッフルするのと同じことをするシンプルなフラッシュカードプログラムです。
'x = x ++;'は未定義の動作です。 'x ++ '(あるいは' ++ x'、 'x + = 1'、' x = x + 1'、 'x - = -1' ....)でなければなりません。 –
これはx ++と++ xはxの値を1ずつインクリメント/デクリメントすることでx自体を変更します。インクリメントが起こる前に、またはインクリメントが起こる前にxにx ++の値を割り当てることができる標準ではこれを指定していません)。 –
+1の良い最初の質問です。 –