亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ex13.cpp

?? C/C++程序設計教程
?? CPP
字號:

		//		第13章      文     件


   // [例13.1] 格式轉換處理一個結構變量
	#include<stdio.h>
    typedef struct  SData
    {      int		nLineset; float	 fAdjust;int nPoint;
	 	  float	     fXa;	float  fYa;	 float	fZa;	
	} CData;
	void OutputData(const  char *filename,const CData &d )
	{
       FILE *fp= fopen(filename, "w");
   	   fprintf(fp,"%d,%f,%d\n",d.nLineset,d.fAdjust,d.nPoint);//1
	   fprintf(fp,"%f,%f,%f\n", d.fXa,d.fYa,d.fZa);//2
	   fclose(fp);       
	}
    void InputData(const  char *filename,CData &d )
	{  FILE *fp = fopen(filename, "r");  
      fscanf(fp,"%d,%f,%d",&d.nLineset,&d.fAdjust,&d.nPoint);//1
	  fscanf(fp,"%f,%f,%f", &d.fXa,	&d.fYa,&d.fZa);//2
	  fclose(fp);       
    }	  	
	void main(void)
	{   CData s={1,2,3,4,5,6};   
        OutputData("c:\\sdata.out",s);
        CData d;              
        InputData("c:\\sdata.out",d);
        OutputData("c:\\cdata.out",d);       	  
	}
////[例13.2]fgetc.cpp
	 # include <stdio.h>    
	void main(void)
 	{	FILE* fpGet=fopen("fgetc.cpp","r");
	    if(fpGet==NULL) {printf("fopen failed\n");return;}         
		int i=0;
		char buffer[512];
		while(feof(fpGet)==0 && i<512) 
			buffer[i++]=fgetc(fpGet);           
		buffer[i]='\0';
		printf("%s\n",buffer); 
		//fclose(fpGet);
	}//    程序運行的結果顯示fgetc.cpp在屏幕上。

///////////////[例13.3]fputc.cpp
	# include <stdio.h>    
	void main(void)
 	{	 FILE* fpGet=fopen("fputc.cpp","r");
	    if(fpGet==NULL) {printf("fopen failed\n");return;}  
		FILE* fpPut=fopen("fputc.xpp","w");
	    if(fpPut==NULL) {printf("fopen failed\n");return;}  
		while(!feof(fpGet)) //while(feof(fpGet)==0) 
				fputc(fgetc(fpGet),fpPut);           
		fclose(fpGet);			
		fclose(fpPut);
	}//程序運行之后即將上面的fputc.cpp源程序轉存到fputc.xpp中。

  /////////////  [例13.4] fgets.cpp
	# include <stdio.h>    
	void main(void)
 	{   	FILE* fp=fopen("fgets.cpp","r");
	    if(fp==NULL) {printf("fopen failed\n");return;}  
		char sBuffer[128];
		for(int k=0;k<9;k++) 
		   if(fgets(sBuffer,128,fp)!=NULL) printf("%s",sBuffer); 
		fclose(fp);
	}//    程序運行的結果顯示fgets.cpp在屏幕上。

 /////////////   [例13.5] fputs.cpp
    # include <stdio.h>                                
	void main(void)                                    
	{	FILE* fpRead=fopen("fputs.cpp","r");                  
   		if(fpRead==NULL) {printf("fopen r failed\n");return;} 
		FILE* fpWrite=fopen("fputsw.cpp","w");                  
   		if(fpWrite==NULL) {printf("fopen w failed\n");return;}  
		char s[81];                             
 		while(!feof(fpRead))       //while(feof(fpRead)==0)       
		if(fgets(s,81,fpRead)!=NULL) 
			{	fputs(s,fpWrite);	printf("%s",s);	} 
		fclose(fpWrite);                                    
	}
////////////	[例13.6]直接隨機方式處理結構變量和數組
	#include<stdio.h>
    typedef struct  SData              //聲明一個未含指針成員的結構類型
    {  int		nLineset; float	 fAdjust;int nPoint;
	  float	       fXa;	float  fYa;	 float	fZa;	
	} CData;                        //同時指定一個該類型的一個別名
	void WriteData(CData pSrc[],int n,FILE *fpDst)
	{  switch(n)                      //分支不是必要的僅只是闡明一些概念
		{ case 1:						//情形1常用于匹配一個簡單的變量
   		fwrite(pSrc,sizeof(CData),1,fpDst); break;
		default:						//缺省情形著重數組的處理
         fwrite(pSrc,sizeof(CData),n,fpDst);//將內存數組pSrc[n]轉存到fpDst定位的文件
	   }
	}
	inline  void ReadData(CData* pDst,int n,FILE *fpSrc )
	{   fread(pDst,sizeof(CData),n,fpSrc);	 } //從文件讀數組fpSrc[n]到pDst定位的內存 	
	void PrintData(const CData &d )
	{	   printf("%4d,%4.1f,%4d,%4.1f,%4.1f,%4.1f\n",
		   d.nLineset,d.fAdjust,d.nPoint,d.fXa,d.fYa,d.fZa); 	         
	}
	void main(void)
	{   CData s  ={0,1,2,3,4,5};    	             //定義一個簡單變量
        CData d[]={1,2,3,4,5,6,
		           2,3,4,5,6,7,
                   3,4,5,6,7,8};		             //定義一個結構數組	
        FILE* fpWrite=fopen("c:\\cdata.dat","w");  //打開文件的慣例操作是缺省文本方式
		if(fpWrite==NULL) {printf("fopen w failed\n");return;} 
	    WriteData(&s,1,fpWrite);                   //將結構變量s寫入磁盤
        WriteData( d,3,fpWrite);                   //將結構數組d寫入磁盤
		fclose(fpWrite);                          //及時地進行實際存盤運作
        FILE* fpRead=fopen("c:\\cdata.dat","r");    //以缺省方式打開上面剛生成的文件            
   		if(fpRead==NULL) {printf("fopen r failed\n");return;} 
		CData b[4];             //定義一個有4個元素的結構數組
        ReadData(b,3,fpRead);    //在文件中先讀取3組結構數據直接送入b[0],b[1],b[2]
        ReadData(b+3,1,fpRead);  //在文件中隨后位置再讀取1組結構數據直接送入b[3]
		for(int k=0;k<4;k++)      //在屏幕上循環顯示每一結構元素的成員值  
        PrintData(b[k]);          //二進制數據通過格式轉換以文本輸出
	}
/////[例13.7]ftell.cpp
     #include<stdio.h>	  	
	 void main(void)
	{   FILE * stream= fopen("ftell.cpp","rb");
        double a[20]; fread(a,sizeof(double),20,stream);
        printf("%d\n",ftell(stream));   //輸出160	  
	}
//////////[例13.8] 一個簡單的讀寫存盤程序
	#include <stdio.h>
	#include <stdlib.h>
	typedef struct student_tag
	{	int num;                    //成員num可以理解為學號
		char name[10];               //字符數組可以理解為姓名
		float s[3];                   //浮點數組具體意義可以靈活的理解
	}STudent;
	void Store(FILE*fpRead,int n)              //入口參數n用于動態構建結構數組
	{	FILE* fpWrite=fopen("STudent.txt","w");// fopen在heap空間建立流文件結構變量
		if(fpWrite==NULL)                 //打開文件的操作是缺省文本方式
         {printf("fopen w failed\n");return;} 
		rewind(fpRead);                          //反繞到文件的起始處
		STudent* ps=new STudent[n];               //定義動態的結構數組ps[n]
		while(!feof(fpRead))                      //一直讀到文件見底EOF
		   fread(ps,sizeof(STudent),n,fpRead);       //在源中讀取n*sizeof(STudent)到ps
		fprintf(fpWrite,"%-6s%-7s%-11s%-8s%-8s%-8s\n",
		   "order","number","name","math","c++","money"); //格式寫的界面靈活多變
		for(int k=0;k<n;k++)                      //循環輸出結構數組中元素的成員值
			fprintf(fpWrite,"%-6d%-6d%-11s%-8.2f%-8.2f%-8.2f\n",k,
			ps[k].num,ps[k].name,ps[k].s[0],ps[k].s[1],ps[k].s[2]);
		delete [] ps;                             //釋放自行建立的結構數組空間
		fclose(fpWrite);                     //釋放系統建立的結構變量,信息及時存盤
	}
	STudent* Produce(int &n)    //誕生一個靜態結構數組
	{   static STudent s[]={3004,"commom",  70,80,234,
	      3001,"matchless",100,100,9999,	    3009,"prudish",  50,51,815,
	      3005,"critical",   60,60,60,		3007,"poor",     50,50,0	};
		n=sizeof(s)/sizeof(s[0]);              //靜態結構數組的維數
		FILE* fpWrite=fopen("student.dat","w");//缺省方式寫打開操作
		if(fpWrite==NULL)
           {printf("fopen w failed\n");exit(0);} 
		fwrite(s,sizeof(STudent),n,fpWrite);  //整齊歸一的入口界面將s[n]送入fpWrite
		fclose(fpWrite);                  //及時關閉文件迅即執行存寫操作
		return s;                        //返回一個局部靜態數組的首地址
	}
	void Update(FILE*fp,int n)      //入口參數n用于指出磁盤空間結構數組的最大維數
	{   //更新流文件中相當于結構數組ps[n]中的元素ps[kth]的值
		printf("Enter the order num 0-%d to updade \n",n-1);
		int kth;
		scanf("%d",&kth);                    //屏幕交互實時地讀入定位的尺數
        STudent s;                          //定義一個局部結構變量s
		fseek(fp,kth*sizeof(STudent),SEEK_SET);//定位于距起始位置kth*sizeof(STudent)處
		fread(&s,sizeof(STudent),1,fp);         //在新定的位置處讀取一段數據到s
		Show(&s,kth);                       //顯示剛讀入的數據
		printf("Enter 4 values to updade for number,math,c++,money\n");
		scanf("%d,%f,%f,%f",&s.num,&s.s[0],&s.s[1],&s.s[2]);//鍵入四個結構成員值
		fseek(fp,kth*sizeof(STudent),SEEK_SET);//定位于結構數組ps[n]中的元素ps[kth]
		fwrite(&s,sizeof(STudent),1,fp);        //相當于寫到元素ps[kth]中
		Show(&s,kth);                      //顯示更新的數據
	}
	void Clear(FILE*fp,int n)
	{	printf("Enter the order num 0-%d to Clear \n",n-1);
		int kth;
		scanf("%d",&kth);                    //屏幕交互實時地讀入定位的尺數
		fseek(fp,kth*sizeof(STudent),SEEK_SET);//定位于距起始位置kth*sizeof(STudent)處
		STudent s0={0,"",0,0,0};              //定義一個清0的結構變量s0
		fwrite(&s0,sizeof(STudent),1,fp);       //在新定的位置處存寫s0
		fseek(fp,kth*sizeof(STudent),SEEK_SET);//復位于磁盤空間類似于至ps[kth]處
		STudent s;
		fread(&s,sizeof(STudent),1,fp);         //在最新的位置讀數據到結構到變量s
		Show(&s,kth);                       //顯示這個結構變量
	}
	void Show(STudent *ps,int k) //格式化顯示ps所指的結構的成員值,形參k指出序號
	{	printf("%-6s%-7s%-11s%-8s%-8s%-8s\n",
				"order","number","name","math","c++","money");
		printf("%-6d%-7d%-11s%-8.2f%-8.2f%-8.2f\n",k,
			ps->num,ps->name,ps->s[0],ps->s[1],ps->s[2]);	
	}
	int MenuChoice(void) //菜單提示讀取菜單選項值
	{	printf("\nEnter choice as bellow:\n"
				"1. store  a formatted file\n" 
				"2. update a record\n"
				"3. clear  a record\n" 
				"4. end program?\n");
		int k;
		scanf("%d",&k);
		return k;
	}
	int main()
	{	int n;
		STudent* ps=Produce(n);                   //產生一個磁盤文件student.dat
		for(int k=0;k<n;k++)                      //循環顯示結果
           Show(ps+k,k); 
		FILE* fp=fopen("student.dat","r+");          //以讀或寫方式打開已存在的文件
		if(fp==NULL) 
         {printf("fopen r+ failed\n");return 1;} 
		int menu;
		while((menu=MenuChoice())!=4)            //選項4跳出循環
         {	switch(menu)
            {case 1:  //選向1用函數Store將格式化的結構數組存儲到STudent.txt文件中
				Store(fp,n);	break;
			case 2:   //選向2用函數Update更新下一步選定的數組元素
				Update(fp,n);	break;
			case 3:   //選項3用函數Clear將下一步選定的數組元素清0
				Clear(fp,n);	break;		
			}	
		}
		fclose(fp);          //關閉流文件
		return 0;
	}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
夜夜精品浪潮av一区二区三区| 久久老女人爱爱| 成人免费视频视频| 琪琪久久久久日韩精品| 视频一区二区国产| 秋霞午夜鲁丝一区二区老狼| 亚洲成a人片在线不卡一二三区| 亚洲一区日韩精品中文字幕| 夜夜嗨av一区二区三区中文字幕| 亚洲精品高清在线观看| 亚洲高清免费观看 | 欧美三级视频在线观看| 欧美剧在线免费观看网站| 寂寞少妇一区二区三区| 亚洲精品免费一二三区| 亚洲自拍偷拍欧美| 亚洲国产一区二区三区| 日本特黄久久久高潮 | 欧美日韩国产高清一区二区三区 | 亚洲国产精品麻豆| 日韩成人精品视频| 激情另类小说区图片区视频区| 国产制服丝袜一区| 91在线高清观看| 欧美丰满美乳xxx高潮www| 日韩欧美国产一区在线观看| 久久久久久9999| 亚洲丝袜美腿综合| 日韩精品视频网| 国产成人8x视频一区二区| 一本到三区不卡视频| 欧美日韩国产精品自在自线| 国产网红主播福利一区二区| 国产精品国产自产拍高清av王其| 亚洲综合色区另类av| 久久99精品视频| 日本道在线观看一区二区| 精品福利一区二区三区免费视频| ...中文天堂在线一区| 天天影视网天天综合色在线播放| 日本大胆欧美人术艺术动态| 国产ts人妖一区二区| 欧美日韩一区 二区 三区 久久精品 | 免费成人你懂的| 91免费精品国自产拍在线不卡| 91精品国产综合久久香蕉的特点 | 又紧又大又爽精品一区二区| 蜜臀av一区二区| 色婷婷香蕉在线一区二区| 2014亚洲片线观看视频免费| 亚洲一区二区三区免费视频| 久久国产精品99久久久久久老狼 | 国产亚洲人成网站| 亚洲gay无套男同| 成人av网站在线观看免费| 日韩欧美电影一区| 亚洲一区二区成人在线观看| 成人性生交大片免费看视频在线| 欧美一级一区二区| 亚洲成人av资源| 99re这里都是精品| 国产精品视频免费| 国产aⅴ综合色| 欧美精品一区二区在线播放| 日韩主播视频在线| 欧美剧在线免费观看网站| 亚洲午夜激情av| 欧美性猛交xxxx黑人交| 国产精品国产三级国产| 欧美最新大片在线看| 自拍偷拍国产亚洲| 色综合久久久久网| 亚洲精品一二三区| 色婷婷av一区二区三区gif| 国产欧美va欧美不卡在线| 国产在线播精品第三| 日韩欧美一区在线观看| 蜜桃视频在线观看一区| 日韩午夜三级在线| 精品一区二区av| www欧美成人18+| 国内精品伊人久久久久av一坑 | 另类专区欧美蜜桃臀第一页| 欧美一区二区三区四区久久| 日韩电影免费一区| 精品日韩一区二区三区免费视频| 另类调教123区| 久久综合九色综合97婷婷女人| 精品亚洲成a人在线观看| 国产网站一区二区三区| 不卡欧美aaaaa| 亚洲精品免费在线| 日韩视频中午一区| 国产一区二区免费在线| 国产精品免费免费| 在线观看日产精品| 久久福利资源站| 久久久久久**毛片大全| 91免费观看视频| 日韩精品乱码av一区二区| 精品国产凹凸成av人导航| 成人午夜精品一区二区三区| 一区二区三区中文字幕电影| 6080国产精品一区二区| 国产成人综合自拍| 亚洲一区二区在线播放相泽 | 国产精品综合一区二区| 亚洲男同性视频| 日韩一级黄色大片| 不卡的av在线| 美女看a上一区| 成人免费一区二区三区视频| 88在线观看91蜜桃国自产| 国产高清精品网站| 三级不卡在线观看| 国产精品乱码一区二三区小蝌蚪| 在线观看视频一区| 成人一区在线看| 免费在线一区观看| 18成人在线视频| 久久综合色综合88| 91超碰这里只有精品国产| 国产成人综合在线观看| 午夜视频一区二区三区| 国产精品久久久久久久久快鸭| 91精品欧美一区二区三区综合在| 成人久久视频在线观看| 麻豆国产欧美日韩综合精品二区| 亚洲欧美一区二区三区国产精品| 精品国产3级a| 51精品国自产在线| 在线免费观看视频一区| 成人深夜福利app| 国产在线精品一区二区夜色| 亚洲大片在线观看| 一区二区三区在线观看国产 | 在线影视一区二区三区| 欧美色窝79yyyycom| 成人在线视频一区| 国产美女精品人人做人人爽| 日日夜夜精品视频免费| 亚洲一区在线观看免费观看电影高清 | 久久久久久一级片| 欧美mv日韩mv国产网站| 欧美精品电影在线播放| 欧美视频一区二区三区四区| 91久久线看在观草草青青 | 一本久久a久久精品亚洲| 成人激情图片网| 成人自拍视频在线观看| 成人午夜激情片| 99久久婷婷国产综合精品| 成人美女视频在线看| 国产91精品在线观看| 国产二区国产一区在线观看 | 中文字幕av在线一区二区三区| 欧美r级电影在线观看| 日韩欧美国产午夜精品| 精品福利二区三区| 国产日产精品1区| 国产精品夫妻自拍| 1024亚洲合集| 香港成人在线视频| 另类小说欧美激情| 国产成人av一区二区三区在线观看| 国产专区综合网| av亚洲精华国产精华精华| 99久久99久久精品免费观看| 色拍拍在线精品视频8848| 欧美日韩精品三区| 日韩精品最新网址| 欧美韩国日本综合| 亚洲日本中文字幕区| 亚洲午夜久久久久久久久久久 | 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲尤物视频在线| 日韩电影免费在线观看网站| 久久爱另类一区二区小说| 国产91丝袜在线播放| 91成人免费网站| 日韩精品一区二区三区中文不卡 | 日韩天堂在线观看| 欧美国产成人在线| 1区2区3区精品视频| 日本亚洲视频在线| 成人黄色免费短视频| 欧美在线观看一区| 久久女同精品一区二区| 亚洲日本在线看| 久久69国产一区二区蜜臀| 97se亚洲国产综合自在线 | 国产最新精品免费| 在线观看欧美精品| 国产亚洲短视频| 亚洲一区二区三区四区五区黄 | 国产一区二区三区精品欧美日韩一区二区三区 | aaa亚洲精品一二三区| 精品视频一区二区三区免费| 精品剧情v国产在线观看在线| 亚洲欧美日韩一区二区|