程序写了一半,请教各位达人给予指正!****************************************
    CFileDialog dlg(TRUE, "dat","*.dat");
if(dlg.DoModal()==IDOK)
{
    CStdioFile file;
VERIFY(file.Open(dlg.GetFileName(),CFile::modeRead)|CFile::typeBinary);
         
           UINT nBytesRead = file.Read(a,2000);
           }
  a为一全局变量  short a[1000];

解决方案 »

  1.   

    最好这样写:
    file.Read(a,sizeof(a));
      

  2.   

    UINT nBytesRead = file.Read(a,2000);
    a为一全局变量  short a[1000];
    如果文件大于1000 你的程序这样会执行非法的改成下面的就行了,MAX_DATA为一个宏
    memset(a,0,MAX_DATA);
     UINT nBytesRead = file.Read(a,MAX_DATA);
    a为一全局变量  short a[MAX_DATA];
      

  3.   


       你说的宏定义该怎样定义?
     
      #define MAX_DATA ?;
      还有memset是个什么函数?
      

  4.   

    结构化存储
    FILE *filestream;
    filestream = fopen("filename", "open signal");
    // 写文件
    fwrite(a, sizoef(a), 1, &filestream);
    // 读取
    fread(a, sizeof(a), 1, &filestream);
      

  5.   

    #define MAX_DATA ?
    没有分号,这个宏的大小你可以根据你要处理的数据大小来确定啊memset那句是把数组全部清0