2012-10-07 114 views
0

3文件I/O流全局声明(所有功能外)无法打开的二进制文件

ifstream fin; 
ofstream fout; 
fstream file; 

这些是发生问题2层的功能。由于某些原因文件“quizquestions.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 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(); 
} 
+0

你有没有找到合适的路径? –

+0

对不起,什么路径? – Harsh

+0

你确定该文件存在于你编译好的exe文件存在的位置吗?你还应该尝试ios :: out标志 – hjindal

回答

0

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

相关问题