0

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();
}
4

1 に答える 1

0

fout.open(ios::app | ios:binary | ios::out); を使用してみてください。

于 2012-10-07T16:22:14.667 に答える