3 ファイル I/O ストリームがグローバルに宣言されている (すべての関数の外側)
ifstream fin;
ofstream fout;
fstream file;
これらは、問題が発生する 2 つの機能です。何らかの理由により、ファイル「quizquestions.dat」を開くことができません。そのため、ステートメント exit(1); が実行され、プログラムが終了しています。問題番号が適切に割り当てられていません。オブジェクト「ユニバーサル」は、質問を格納する私のクラスの質問のオブジェクトです。コードはコンパイルされ、エラーはありません。
void questionnumber()
{
int file_size=0;
fin.open("quizquestions.dat",ios::in|ios::binary);
fin.seekg(0,ios::end);
file_size = file.tellg();
if(file_size==0)
universal.assignquestion(1);
fin.close();
int next_question = (file_size/sizeof(question)) + 1;
universal.assignquestion(next_question);
}
void addquestion()
{
ch='y';
do
{
cout<<"Adding question now\n";
cout<<"Please\n";
universal.createquestion();
questionnumber();
fout.open("quizquestions.dat",ios::app|ios::binary);
if(!fout)
exit(1);
fout.write((char*)&universal,sizeof(question));
fout.close();
cout<<"Your question is added\nYour question details are as follows"<<endl;
universal.dispquestion();
cout<<"Do you want to add more questions?(Y/N)\n";
cin>>ch; cin.ignore();
}
while(ch=='y'||ch=='Y');
if(ch!='y'||ch!='Y')
dispsetting();
}