思路:1、打开文件;2、获取文件大小;3、分配内存空间;4、处理数据
代码:
C实现:
#include "stdafx.h"
#include <stdlib.h>
#include <memory.h>
int _tmain(int argc, _TCHAR* argv[])
{
FILE * pfile = nullptr;
long lsize = 0;
char * buffer = nullptr;
//打开文件
pfile = fopen("F:\\C++\\ReadFileToMem\\ReadFileToMem\\test.txt", "rb");
if (NULL == pfile)
{
printf("File open failed.\n");
exit(1);
}
//获取文件大小
fseek(pfile, 0, SEEK_END);
lsize = ftell(pfile);
rewind(pfile);
//分配内存空间
buffer = (char*)malloc(lsize + 1);//加1的目的是为了多申请一个字节的空间,然后把这个字节置0,因为C的字符串是以\0结尾的,避免内存泄露
memset(buffer, 0, lsize + 1);
if (NULL == buffer)
{
printf("Memory malloc failed.\n");
exit(1);
}
//数据处理
fread(buffer, sizeof(char), lsize, pfile);
printf("%s", buffer);
fclose(pfile);
free(buffer);
system("pause");
return 0;
}