用C语言敬启历实现将一个文件读入旁团内存方法:
#include
#include
int filelength(FILE *fp);
char *readfile(char *path);
int main(void)
{
FILE *fp;
char *string;
string=readfile("c:/c.c");
printf("读入完毕\n按任意键释放内存资源\n");
//printf("%s\n",string);
system("pause");
return 0;
}
char *readfile(char *path)
{
FILE *fp;
int length;
char *ch;
if((fp=fopen(path,"r"))==NULL)
{
printf("open file %s error.\n",path);
exit(0);
}
length=filelength(fp);
ch=(char *)malloc(length);
fread(ch,length,1,fp);
*(ch+length-1)='亮搜\0';
return ch;
}
int filelength(FILE *fp)
{
int num;
fseek(fp,0,SEEK_END);
num=ftell(fp);
fseek(fp,0,SEEK_SET);
return num;
}
先获得文件长度竖销
int length;
ifstream fin(pFilename.c_str());
fin.seekg (0, ios::end);
length = fin.tellg();
fin.seekg (0, ios::beg);
再一闭纤态次性申轿源请内存
char *ch = new char[length];
读入文件
fin.read((char *)&ch ,sizeof(char)*length);
sorry刚才查了一下ifstream 是C++的
fgetc()是一个一个的念运卜字符读取。fscanf()从指定的文件按格式输入数据。fprintf()按指定的仔穗格式将数据写道指定的文件。“%s”可以整个字符串进行悄猜
。fscanf(fp,"%s",& )
要知道文件的长度,然后分配文件长度大小的内存,最后用fread读取