先看下面代码,没有读出东西
   /*---------------------------------------
   CStdioFile fp;
   CString str1;
   CString str="C:\\name.txt";
   
   fp.Open(str,CFile::modeRead | CFile::typeText);
   for(int i=0;i<8;i++)
   {
   fp.ReadString(str1);
   //MessageBox(str1);
   
   }
   MessageBox(str1);
   fp.Close();
   ------------------------------------------------*/
   问题:
    有没有简便的读取文本的方法?
   

解决方案 »

  1.   


            CFileDialog fileDlg(TRUE);
    fileDlg.m_ofn.lpstrTitle="我的文件打开对话框";
    fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";

    if(IDOK==fileDlg.DoModal())
    {
    CFile file(fileDlg.GetFileName(),CFile::modeRead);
    char *pBuf;
    DWORD dwFileLen;
    dwFileLen=file.GetLength();
    pBuf=new char[dwFileLen+1]; pBuf[dwFileLen]=0;
    file.Read(pBuf,dwFileLen);
    file.Close();
    MessageBox(pBuf);
    }   }
      

  2.   

    To:JinYang2005
    /*---------------------...
    file.Close(); 
    MessageBox(pBuf); delete []pBuf;   //我认为应该加上,否则会不会造成内存泄漏?
    } -------------------*/
    new数组一定要delete[]来释放
      

  3.   

    还有一个问题问大家:我做了一个键盘全局钩子用于记录键盘信息, 出现一个问题是:当你用键盘右边的数字小键盘输入数字时,此时记录在txt文本中的信息却不是数字,而是英文字母!(why?)但是,我又试着敲击键盘左边上部的数字键,这时发现记录的是数字信息...没有出现上边的错误!有那位大侠以前遇到过这种情况呀?怎么纠正啊?真诚表示感谢!!!
      

  4.   

    /*---------------当你用键盘右边的数字小键盘输入数字时,此时记录在txt文本中的信息却不是数字,而是英文字母!(why?) 
    ----------------*对应情况如下:
    1 -> a  (敲击“1”键,但是在txt中记录的却是“a”)
    2 -> b
    3 -> c
    ...
    9 -> i