/* 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+"形式的文本文件!不能是二進制文件
不知道 第三種 讀的時候 有多行時,最后一個字符為"屯” 為什么是 啊,單行正確