for(int i=30;i--;i>0)应该是 for(int i=30;i>0;i--)吧。

解决方案 »

  1.   

    将字符串输入CString中
    取出‘=’后的数字
    用atof转换CFile myfile;
    if(myfile.Open(FileName,CFile::modeRead))
    {
    CArchive ar(&myfile,CArchive::load);
    CString OkError;
    ar>>OkError;


    ar>>OkError;

    mFile.Read(buf,6);
    会好一点
    让mfc来进行类型判断
      

  2.   

    int main(int argc, char* argv[])
    {
    CFile mFile;
    char buf[20];
    mFile.Open("D:\\input.out",CFile::modeRead);
    char data[8];
    char onebit[2];
    int a=0;      // a的定义必须放到这里
    mFile.Seek(-30,CFile::end);
    for(int i=30;i--;i>0)

    mFile.Read(buf,6);
    if(buf[0]=='V'&&buf[1]=='A'&&buf[2]=='L'&&buf[3]=='U'&&buf[4]=='E'&&buf[5]=='=') // buf[4]='E'少写一个=号


    for(int n=1;n<16;n++)
    {

    mFile.Read(onebit,1);
    if(onebit[0]=='1'||onebit[0]=='2'||onebit[0]=='3'||
    onebit[0]=='4'||onebit[0]=='5'||onebit[0]=='6'||
    onebit[0]=='7'||onebit[0]=='8'||onebit[0]=='9'||
    onebit[0]=='0'||onebit[0]=='.') // 这里统统改成onebit[0], c语言是从0开始算的
    {
    //把 int a=0;移掉,否则每次都是data[0]=xx;
    data[a]=onebit[0]; // 改成0
    a++;
    }     
    }
    break;//找到之后记得退出

    }
    mFile.Seek(-i,CFile::end);
    }
    if( a>0 ) // 如果a>0表示找到了
    {
    data[a]=0; //字符串以0结尾,加一个0
    double f = atof(data); //转换成浮点数
    printf("%s,%f\n",data,f);
    }

    return 0;

    }
      

  3.   

    嘿嘿,排除你的循环的问题,如果解决了下面的就省略;
    何必如此麻烦:1,将后面的字符全部读出,在进行识别就可以了!
    char buff[30];
    mFile.Seek(-30,CFile::end);
    mFile.Read(buff,30);  // 空间不够,你自己加
    for ( int i= 0 ; i<30 ; i++ )
    {
    if (buff[i] == 'v' || buff[i] == 'V' ) //lowcase or upcase
    {
    if ( buff[i+1] == 'a' || buff[i+1] = 'A') 
    ... // to decide the location of '=' ,when you get you can do next
    ePositon = i+6; // to store '=' position
    }} //end this loop
    for ( int i =ePosition ; i<30 ; i++ )
    {
    if (( buff[i] > '0' && buff[i] <'9') || buff[i] == '.')
    {
    //use a array store ,if it is a digit ,use
    // function atoi(char ) change it
    }
    }//done
      

  4.   

    对了,你死机的原因是这句:
    for(int n=1;n++;n<6)
    改为:
    for(int n=1;n<6;n++)还需要好好学学c语言另外一百分呢???