Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法打开二进制文件_C++_File Io - Fatal编程技术网

C++ 无法打开二进制文件

C++ 无法打开二进制文件,c++,file-io,C++,File Io,3全局声明文件I/O流(在所有函数之外) 这是出现问题的两个函数。由于某些原因,“quizquestions.dat”文件无法打开。由于该语句退出(1);正在执行,程序正在终止。问题编号分配不正确。对象“universal”是我的类问题的一个对象,它存储问题。 代码得到编译,没有错误 void questionnumber() { int file_size=0; fin.open("quizquestions.dat",ios::in|ios::binary); fin

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

这是出现问题的两个函数。由于某些原因,“quizquestions.dat”文件无法打开。由于该语句退出(1);正在执行,程序正在终止。问题编号分配不正确。对象“universal”是我的类问题的一个对象,它存储问题。 代码得到编译,没有错误

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();
}
void questionnumber()
{
int file_size=0;
fin.open(“quizquestions.dat”,ios::in | ios::binary);
财政司司长(0,ios::结束);
file_size=file.tellg();
如果(文件大小==0)
普遍性问题(1);
fin.close();
int next_question=(文件大小/sizeof(问题))+1;
普遍性问题(下一个问题);
}
void addquestion()
{
"y",;
做
{

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

您确定该文件存在于编译的exe所在的位置吗?您还应该在标志中尝试ios::out。如果它不存在,是否会创建同名的新文件?为什么要检查(!fout)…您必须检查!fout_isopen()函数。
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();
}