无法打开二进制文件

Failing to open Binary File

本文关键字:二进制文件      更新时间:2023-10-16

3 文件 I/O 流是全局声明的(在所有函数之外)

ifstream fin;
ofstream fout;
fstream file;

这是出现问题的 2 个函数。由于某种原因,文件"测验问题.dat"无法打开。因此,语句退出(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 nown";
        cout<<"Pleasen";
        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 addednYour 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();
}

尝试使用 fout.open(ios::app | ios:binary | ios::out);