问题在
iCL[i]=int(str1[0]-'0')*10+int(str1[1]-'0');
不过有更简单的方法;
#include <stdio.h>
int iCL[12];
char *pFile="E:\\Test\\ttt.dat";
FILE *pFile=fopen(pFileName,"r");
if(pFile)
{
    for(int i=0;i<12;i++)
         fscanf(pFile,"%02d",iCL+i);
    fclose(pFile);
}
else
   exit(-1);此外,读取文本文件你也可以使用VC中的CStdioFile,不过没有stdio中FILE方便。

解决方案 »

  1.   

    to duz
    我按你讲的改了!!
    结果对的!!
    为什么要这样改!!
    麻烦你说明一下!!
    我为了做毕业设计才学VC,什么都不懂!!
    谢谢你!
      

  2.   

    iCL[i]=int(str1[0]-48)*10+int(str1[1]-48);
    这样也许就可以了  
      

  3.   

    没有这么复杂吧?用atoi函数不行吗?
      char* pFileName="E:\\Test\\ttt.dat";
      CFile file;    
      file.Open(pFileName,CFile::modeReadWrite);
      char str1[2];
      int iCL[12];
      file.SeekToBegin();
      for(int i=0;i<12;i++)
     {
       for(int j=0;j<2;j++)
       {  
         file.Read(&str1[j],1);  
       }
      iCL[i]= atoi(str1); 
      }                                    
      

  4.   

    你得到的str1[0]是字符在ascii码中'0'对应0x30即48,1对应0x31即49
    所以:if str1[0]='1' str1[1]='2'
    int(str1[0])*10+int(str1[1])is int('1'*10)+int ('2')即49*10+50 得到540
    如果:
    int(str1[0]-48)*10+int(str1[1]-48);is int(('1'-48)*10)+int ('2'-48)即((49-48)*10)+(50-48)得1*10+2=12
    我的天啊,我没有耐心了!
    88