我在让这个程序正常工作时遇到问题。程序询问一个问题,然后将该问题写入文件。然后它会询问您是否要输入另一个问题。如果您点击“1”,它将循环并要求您输入另一个问题。该程序本身运行和关闭没有任何问题。问题是无论我输入多少问题,它只会将第一个问题写入文件。其余的被空行替换。如果我关闭程序并重新运行它,它将再次只写一行。我确定 cin.ignore 与它有关,但我不知道如何解决它。请帮忙。
#include <iostream>
#include <fstream>
#include <limits>
#include <string>
using namespace std;
int main ()
{
string question;
int x;
ofstream a_file("test.txt",ios::app);
do
{
cout<<"Enter a question:\n\n";
getline(cin,question);
a_file<<question<<"\n";
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"Would you like to enter another question?\n";
cout<<"1 for yes. 2 for no: ";
cin>>x;
}
while (x!=2);
a_file.close();
cout<<"\nYour submition has been saved. Have a nice day!\n";
cout<<"Press enter to close the program.";
cin.ignore();
cin.get();
}