fread fwrite 讀寫文本文件(MFC 應用程序)


 /*
	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+"形式的文本文件!不能是二進制文件

不知道 第三種 讀的時候 有多行時,最后一個字符為"屯”  為什么是 啊,單行正確


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM