求大师看看如何解决
CFile file("1.txt",CFile::modeRead);
char *pBuf;
DWORD dwFileLen;
dwFileLen=file.GetLength();
pBuf=new char[dwFileLen];
file.Read(pBuf,dwFileLen);
file.Close();
MessageBox(pBuf);文件“1.txt”中只有一个"a",调试得到dwFileLen长度为1,但出来的消息框是乱码,且长度还不相同。

解决方案 »

  1.   

    CFile file("1.txt",CFile::modeRead | CFile::modeNoTruncate);
    char *pBuf;
    DWORD dwFileLen;
    dwFileLen=file.GetLength();
    pBuf=new char[dwFileLen+1];
    file.Read(pBuf,dwFileLen);
    pBuf[dwFileLen] = '\0';
    file.Close();
    MessageBox(pBuf);
      

  2.   

    字符串最后需要有一个0作为结尾
    CFile file("d:\\1.txt",CFile::modeRead);
    char *pBuf;
    DWORD dwFileLen;
    dwFileLen=file.GetLength();
    pBuf=new char[dwFileLen+1];
    file.Read(pBuf,dwFileLen);
    file.Close();
    pBuf[dwFileLen]='\0';
    MessageBox(pBuf);