vc2010使用readfile读取数据后总在结尾有一串乱码
void main()
{
char *pBuffer;
char Buffer1[10];
DWORD RSize;
HANDLE hOpenFile = CreateFile(L"E:\\a.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
if (hOpenFile == INVALID_HANDLE_VALUE)
{
hOpenFile = NULL;
}
printf("file=%d\n",fileSize);
pBuffer = (CHAR *) malloc(fileSize);
ReadFile(hOpenFile, Buffer1, sizeof(Buffer1), &RSize, NULL);
printf("sizeof(Buffer1)=%d\n",sizeof(Buffer1));//这里显示10
printf("strlen(Buffer1)=%d\n",strlen(Buffer1));//这里显示23
printf("buff=%s",Buffer1);
free(pBuffer);
}
void main()
{
char *pBuffer;
char Buffer1[10];
DWORD RSize;
HANDLE hOpenFile = CreateFile(L"E:\\a.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
if (hOpenFile == INVALID_HANDLE_VALUE)
{
hOpenFile = NULL;
}
printf("file=%d\n",fileSize); // fileSize哪来的?
pBuffer = (CHAR *) malloc(fileSize); //最好用memset(pBuffer,0,fileSize);初始化一下内存。
ReadFile(hOpenFile, Buffer1, sizeof(Buffer1), &RSize, NULL); //RSize为多少?
printf("sizeof(Buffer1)=%d\n",sizeof(Buffer1));//这里显示10
printf("strlen(Buffer1)=%d\n",strlen(Buffer1));//这里显示23
printf("buff=%s",Buffer1);
free(pBuffer);
//句柄没有释放,CloseHandle(fOpenFile);
}
void main()
{
char Buffer1[10];
DWORD RSize;
HANDLE hOpenFile = CreateFile(L"E:\\a.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
if (hOpenFile == INVALID_HANDLE_VALUE)
{
hOpenFile = NULL;
return;
}
ReadFile(hOpenFile, Buffer1, sizeof(Buffer1), &RSize, NULL);
printf("RSize=%d\n",RSize);
CloseHandle(hOpenFile);
}