/*
FILE * stream;
char buf[20];
memset(buf,0,20); //初始化内出
if((stream=fopen("G:\\123.txt","r"))==NULL)
{
TRACE("打开文件失败!");
return;
}
TRACE("read finish");
fseek(stream,0,0);
fread(buf,1,20,stream);
fclose(stream);
TRACE("%s",buf);*/
//第一种方法 必须 初始化内存!!!!!!!要不然为烫烫烫烫烫 烫烫烫 乱码
/*
FILE * stream;
char buf[20];
memset(buf,0,20); //初始化内出
if((stream=fopen("G:\\123.txt","r"))==NULL)
{
TRACE("打开文件失败!");
return;
}
TRACE("read finish");
fseek(stream,0,0);
// fread(buf,1,20,stream);
int i=0;
while(!feof(stream))
{
fread(&buf[i],sizeof(char),1,stream);
i++;
}
fclose(stream);
TRACE("%s",buf);
//************第二种 一个一个读
*/
//FILE* pFile=fopen("G:\\123.txt","r");//这里加载一个PE文件
//fseek(pFile, 0, SEEK_END);
//int len = ftell(pFile);
//char* szBuf=new char[len+1];
memset(szBuf,0,len);
//fseek(pFile, 0, SEEK_SET);
//int iRead=fread(szBuf,1,len,pFile);
//szBuf[len]=0;
// fclose(pFile);
// TRACE("%s",szBuf);
// //delete szBuf;//释放内存
// TRACE("%d",iRead);
//**************************************第三种方法
没有问题 但是 当有换行时 最后有一个 “屯” 字符不知道为什么?单行是正确的
FILE *fp;
int flen;
char *p;
if((fp=fopen("G:\\A5.txt","r"))==NULL)
{
return ;
}
fseek(fp,0,SEEK_END);
flen=ftell(fp);
p=(char*)malloc(flen+1);
if(p==NULL)
{
fclose(fp);
}
fseek(fp,0,SEEK_SET);
fread(p,flen,1,fp);
p[flen]=0;
TRACE("%s",p);
fclose(fp);
//free(p);
//**************************第四种 方法
FILE *wfile;
wfile=fopen("G:\\A56.txt","wt+");
if(wfile==NULL)
{
TRACE("create file error");
return;
}
int num=fwrite(p,1,strlen(p),wfile);
fclose(wfile);
int size=strlen(p);
TRACE("大小是:\n");
TRACE("%d",size);
TRACE("写入的数量\n");
TRACE("%d",num);
}
最后 写文件 必须是 wfile=fopen("G:\\A56.txt","wt+"); 中"wt+"形式的文本文件!不能是二进制文件
不知道 第三种 读的时候 有多行时,最后一个字符为"屯” 为什么是 啊,单行正确