我用mfc编写了一个基于对话框的程序,在vc界面下调试通过,并且可以运行,但是到文件夹下找到的可执行文件运行却又错误,各位大人请指点,谢谢,错误出现在读文件的时候,弹出的assertion提示,fscanf.c里面stream != NULL

解决方案 »

  1.   

    void ParamStream::ReadOperators(CString fileName,CString *operator1,CString *operator2)
    {
    ifstream in(fileName,ios::nocreate);
    if (in.fail())
    {
    AfxMessageBox(fileName+"is missing!");
    return;
    } char dust[100];
    int index1;
    int index2;
    CString lineText; in.getline(dust,100);
    lineText=dust;
    index1=lineText.Find(':',0);
    index2=lineText.Find('#',0);
    *operator1=lineText.Mid(index1+1,index2-index1-1);
    if (operator2==NULL)
    {
    return;
    }
    in.getline(dust,100);
        lineText=dust;
    index1=lineText.Find(':',0);
    index2=lineText.Find('#',0);
    *operator2=lineText.Mid(index1+1,index2-index1-1);
    in.close();
    }
    但是主要问题是我在调试的时候通过了,只是在运行debug文件夹下面的exe时会出错
      

  2.   

    可能是你读取的文件路径不对,把你要读的文件放到debug文件夹试试.
      

  3.   

    ifstream   in(fileName,ios::nocreate); 
    -----------------------------fileName参数检查下,把他换成一绝对路径试下:"....\DEBUG\FILENAME"
      

  4.   

    试过了,不行啊,filename就是全局变量,保存的绝对路径阿
      

  5.   

    ifstream   in(fileName,ios::nocreate); 
    这里的FileName修改为字符串格式的绝对路径试验一下。
    判断是不是由于路径的原因
      

  6.   

    char   dust[100]; 
    memset(dust, 0 ,sizeof(dust) );
    in.getline(dust,99);不知道行不? 
      

  7.   

    还是不行啊,我用了绝对路径字符串问题依旧,于是把stream都改成了CStdioFile,还是出现这个问题,达人们帮忙啊