freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[理學(xué)]模塊7_位運算與文件-閱讀頁

2024-10-31 21:16本頁面
  

【正文】 【 實驗 】 從鍵盤輸入兩個學(xué)生數(shù)據(jù),寫入一個文件中,再讀出這兩個學(xué)生的數(shù)據(jù)顯示在屏幕上。并將輸入后的學(xué)生信息寫入文件,再讀出該文件的內(nèi)容,顯示在屏幕上。 /**/ include include include struct stu { char name[10]。 int age。 }stu_1[2],stu_2[2],*p,*q。 p=stu_1。 int i。 exit(0)。 for(i=0。i++,p++) scanf(%s %d %d %s,pname,amp。page,paddr)。 fwrite(p,sizeof(struct stu),2,fp)。 fread(q,sizeof(struct stu),2,fp)。 for(i=0。i++,q++) printf(%s\t%5d%7d\t%s\n,qname,qnum,qage,qaddr)。 } 本例程序定義了一個結(jié)構(gòu) stu,說明了兩個結(jié)構(gòu)數(shù)組 stu_1和 stu_2以及兩個結(jié)構(gòu)指針變量 p和 q。程序以讀寫方式打開二進制文件“ stu_list” ,輸入二個學(xué)生數(shù)據(jù)之后,寫入該文件中,然后用 rewind函數(shù)把文件內(nèi)部位置指針重新移到文件首,讀出兩個學(xué)生數(shù)據(jù)后,在屏幕上顯示 。 【 指導(dǎo) 】 與函數(shù) fread和 fwrite相比, fscanf和 fprintf函數(shù)每次只能讀寫一個結(jié)構(gòu)數(shù)組元素,因此采用了循環(huán)語句來 讀寫全部數(shù)組元素,程序 如下。 int num。 char addr[20]。 main( )( ) { FILE *fp。 q=stu_2。 if((fp=fopen(stu_list,wb+))==NULL) { printf(Cannot open file strike any key exit!)。 } printf(input data\n)。i2。pnum,amp。 p=stu_1。i2。 rewind(fp)。i2。qnum,amp。 printf(NAME\tNUMBER\t AGE\t ADDR\n)。 for(i=0。i++,q++) printf(%s\t%5d%7d\t%s\n,qname,qnum,qage,qaddr)。 } 本程序中 fscanf和 fprintf函數(shù)每次只能讀寫一個結(jié)構(gòu)數(shù)組元素,因此采用了循環(huán)語句來讀寫全部數(shù)組元素。 圖 716 程序 EX7_12運行結(jié)果 【 實驗 】 在學(xué)生文件 stu_ list中讀出第二個學(xué)生的數(shù)據(jù)。因此用函數(shù) fseek先將文件內(nèi)部的位置 指針移動到需要讀寫的位置,然后再使用函數(shù)fread讀取指定數(shù)據(jù)。 int num。 char addr[20]。 main( )( ) { FILE *fp。 p=amp。 if((fp=fopen(stu_list,rb))==NULL) { printf(Cannot open file strike any key exit!)。 exit(1)。 fseek(fp,i*sizeof(struct stu),0)。 printf(name\tnumber\t age addr\n)。 } 該程序的一次運行實例如下圖 717。 【 指導(dǎo) 】 每次對原文中的一個字符進行加密,再將加密后的這個字符存儲到密文,直到將原文中的每個字符做如上處理后,才結(jié)束該加密程序。 /**/ include include include void main( ) { FILE *originalfile,*Cipherfile。 int intCipher。 printf(請輸入密鑰 intN的值: )。 intN)。 exit(0)。 exit(0)。 while(charC!=EOF) { intCipher=(int)(charC)^intN。 charC =fgetc(originalfile)。 fclose(originalfile)。在C語言中,一個 int型數(shù)據(jù)占 2個字節(jié),因此該程序可以有 65536個加密密鑰。 圖 718 程 序 EX7_14運行結(jié)果 圖 719 程 序 EX7_14加密前原文內(nèi)容 圖 720 程 序 EX7_14加密后密文內(nèi)容 此外,該實例只是為了說明通過 C語言中的位運算與文件處理解決問題的方法。例如該程序可以使用不同的加密密鑰進行多次加密,或者配合使用其他位運算,對原文實現(xiàn)非對稱加密等方法,都可以增加密文的破解難度,以達到文件傳輸過程中的安全性。 ?; ?,卻企圖向該文件輸出數(shù)據(jù); ?,忘記關(guān)閉文件等錯誤。 貫通案例之八 ?: 在貫通案例七的基礎(chǔ)上實現(xiàn)學(xué)生成績管理系統(tǒng)的加載文件,保存文件兩個功能。 int i 。 if((fp=fopen(record,wb))==NULL) { printf(can not open file\n)。 } printf(\nSaving file\n)。n, sizeof(int), 1, fp ) 。m, sizeof(int), 1, fp ) 。 in。 } fclose(fp) 。 } /* 函數(shù)功能:加載學(xué)生記錄文件 函數(shù)參數(shù):結(jié)構(gòu)體指針 head,指向存儲學(xué)生信息的結(jié)構(gòu)體數(shù)組的首地址 整型變量 n,表示學(xué)生人數(shù) 整型變量 m,表示考試科目 函數(shù)返回值:結(jié)構(gòu)體指針 head,指向存儲學(xué)生信息的結(jié)構(gòu)體數(shù)組的首地址 */ /**/ STU *LoadScoreFile(STU *head, int *n, int *m ) { FILE *fp 。 if ( ( fp=fopen(record, rb)) == NULL ) { printf (open failure\n) 。 } fread( n, sizeof(int), 1, fp) 。 /* 先讀出課程數(shù) */ printf(M:[%d] N:[%d]\n, *m, *n ) 。 i= *n。 } fclose ( fp) 。 } ? 圖 721 保存文件 圖 722 加載 ,顯示學(xué)生成績 自測題 1. 以下程序的輸出結(jié)果是 main( )( ) { char x=040。 } A) 100 B) 80 C) 64 D) 32 2. 有以下程序 main( )( ) {unsigned char a,b,c。 b=a|0x8。 printf(%d%d\n,b,c)。 A) 1112 B) 613 C) 1224 D) 1122 3. 下列關(guān)于 C語言數(shù)據(jù)文件的敘述中正確的是 A)文件由 ASCII碼字符序列組成, C語言只能讀寫文本文件 B)文件由二進制數(shù)據(jù)序列組成, C語言只能讀寫二進制文件 C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件 D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件 4. 下面的程序執(zhí)行后,文件 include void fun(char *fname ,char *st) { FILE *myf。 myf=fopen(fname,w )。istrlen(st)。 fclose(myf)。 fun(test,hello,)。 include main( )( ) { FILE *fp。 if((fp=fopen(,r))==NULL) { printf(Open file error!\n)。 } while__________ { fgetc(fp)。 } printf(number=%d\n,number)。 } 6.下面的程序是從一個二進制文件中讀入結(jié)構(gòu)體數(shù)據(jù),并把結(jié)構(gòu)體數(shù)據(jù)顯示在終端屏幕上,請?zhí)羁铡? float total。 fp=fopen(,r)。 _________。 while(!feof(fp)) { fread(amp。 printf(%d,%f,___________,________
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1