读取了一个文本文件内容pBuf,但pBuf后面会加上10多个空格和一个?号的乱码,这是怎么回事?代码如下谢谢谢指点:char *pBuf;hFile = CreateFile(f1,GENERIC_READ, FILE_SHARE_READ, 
NULL, OPEN_EXISTING, 0, NULL);
dwSize = GetFileSize(hFile, NULL);
pBuf = new char[dwSize];
memset(pBuf,'\0',sizeof(pBuf));
ReadFile(hFile, pBuf, dwSize, &dwBytes, NULL);
CloseHandle(hFile);
MessageBox(pBuf);

解决方案 »

  1.   

    pBuf = new char[dwSize + 1];
      

  2.   

    pBuf = new char[dwSize + 1];
    不行呐,还多了个“妄”字
      

  3.   

    memset(pBuf,'\0',sizeof(pBuf));
    这句有问题。sizeof(pBuf)为4!!!
    应该memset(pBuf,'\0',dwSize);不过最好多分配一个字节。
      

  4.   

    memset(pBuf,'\0',sizeof(pBuf));
    这句有问题。sizeof(pBuf)为4!!!
    应该memset(pBuf,'\0',dwSize);不过最好多分配一个字节。
      

  5.   

    楼上的代码还是有这个问题如果写成char pBuf[100];去掉pBuf = new char[dwSize];就不会有了这些乱码了。。我想应该是在pBuf = new char[dwSize];这里有问题,不过不知道要怎么改
      

  6.   

    我知道为什么了,改成下面这样就这个问题了,谢谢各位的回复。pBuf = new char[dwSize+1]; 
    memset(pBuf,'\0',dwSize+1);