/* 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+"形式的文本文件!不能是二进制文件
不知道 第三种 读的时候 有多行时,最后一个字符为"屯” 为什么是 啊,单行正确