从txt文件中读取数据的时候如何一行行的顺序读取,处理后保存到动态数组中

解决方案 »

  1.   

    自己写,不要使用MFC的类,MFC很多意外情况。
    ================================================== FILE *pSourFile; //指向源文件
    CString sSourLine=""; //从源文件中取出的一行 pSourFile = fopen(sFileName,"rt");
    if(pSourFile==NULL) {
    AfxMessageBox("源文件打开失败!");
    return false;
    }
    while(!feof(pSourFile)){
    ReadLine(pSourFile, sSourLine);//读一行
    }
    }
    //读取文件的一行
    void CSetEx::ReadLine(FILE *pFile, CString &line)
    {
    line="";
    char ch;
    int pos=0;
    while(!feof(pFile)){
    //Read(&ch,1);
    ch = fgetc(pFile);
    if(ch=='\r'||ch=='\n')break;
    line+=ch;
    pos++;
    if(line.Find("", 0))
    {
    ftell(pFile);
    }
    }
    line.TrimRight('\r'); 
    line.TrimRight('\n'); 
    line.TrimRight('\r'); 
    line.TrimRight(0xff); //过滤文件结束符
    return;

    }
      

  2.   

    或者:
    CStdioFile file;
    if(file.Open(_T(m_sAppPath+"\\text"),CFile::modeReadWrite))
        {
    CString sss;
    DWORD o=0;
    int ol=0;
    while(file.ReadString(sss))
    {
    if(find.FindFile(m_sAppPath+"\\text"))
    m_cbBkGround.AddString(sss);//sss即为一行
    }
    }
      

  3.   

    CStdioFile的ReadString()读。
    保存到动态数组就看你要保存成什么类型了。
      

  4.   

    eastred(东方红):保存到动态数组呀,一行保存为数组的一个成员vcleaner(我没做大哥已经很久了.......) ;CSetEx是指的自己定义的类吗?