各位大大,小弟在读个文件 做分析 文件的内容格式差不多这样
a     b    c    d    e     f
1     2.4  5.3  5.2……
2     1.7……
3……
4……
5
6
从第1行第1列开始是有意义的数字  我想问下
1  怎么样用CStdioFile类来读取特定列 比如第2  3列的内容 
2  怎么样转换格式?readstring读出的是CString型 的 要转换为double?
谢谢

解决方案 »

  1.   

    逐行读取,可以计数到你需要的行数,或者根据特征判断是否需要的数据;读取后可以用_tcsscanf等函数来解析字符串,或者根据空格等先拆分再转换(_tstof等)。
      

  2.   

    不能直接读取指定列,必须把全部行读完,把需要的列的数据取出来。可用_stscanf函数,解析每行的字符串,同时可将一个字符串转换成double变量
      

  3.   

    谢谢楼上 我也是一下读取整行 然后 left  right这样取的 
      

  4.   


    将指定行读出,获得是一个整行字符串,然后调用AfxExtractSubString函数提取出每个子字符串,再调用atof将字符串转换成double.
    CString str = _T("");
    m_File.ReadString(str);//str = "2.4 5.3 5.2";for (int i=0; i<3; i++)
    {
    CString substr =_T("");
    AfxExtractSubString(substr, str, i, ' ');
    double a = atof(substr);
    }
     
      

  5.   

    谢谢各位的回答 我就是一行一行取 然后再用left  之类的获得