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

正文內(nèi)容

c程序設計文件ppt課件(參考版)

2025-01-18 08:55本頁面
  

【正文】 從上題的“職工工資文件”中刪去一個職工的數(shù)據(jù),再存回原文件。每個職工的數(shù)據(jù)包括職工姓名、職工號、性別、年齡、住址、工資、健康狀況、文化程度。 上題結果仍存入原有的“ stu sort”文件而不另建立新文件。 將上題已排序的學生成績文件進行插入處理。 有 5個學生,每個學生有 3門課的成績,從鍵盤輸入以上數(shù)據(jù) (包括學生號,姓名,三門課成績 ),計算出平均成績,將原有數(shù)據(jù)和計算出的平均分數(shù)存放在磁盤文件“ stud”中。輸入的字符串以“!”結束。希望讀者在實踐中掌握文件的使用。 ? 文件這一章的內(nèi)容是很重要的,許多可供實際使用的 C程序都包含文件處理。在調用 clearerr(fp)后,ferror(fp)的值變成 0。 clearerr函數(shù) ? 它的作用是使文件錯誤標志和文件結束標志置為 0。應該注意,對同一個文件每一次調用輸入輸出函數(shù),均產(chǎn)生一個新的ferror函數(shù)值,因此,應當在調用一個輸入輸出函數(shù)后立即檢查 ferror函數(shù)的值,否則信息會丟失。 ? 如果 ferror返回值為 0(假 ),表示未出錯。 ferror函數(shù) ? 在調用各種輸入輸出函數(shù) (如 putc、 getc、 fread、fwrite等 )時,如果出現(xiàn)錯誤,除了函數(shù)返回值有所反映外,還可以用 ferror函數(shù)檢查。 ? 變量 i存放當前位置,如調用函數(shù)出錯 (如不存在此文件 ),則輸出“ error”。例如: ? i=ftell(fp)。用 ftell函數(shù)可以得到當前位置。 } ftell函數(shù) ? ftell函數(shù)的作用是得到流式文件中的當前位置,用相對于文件開頭的位移量來表示。 printf(%s %d %d %c\n, stud[i].name,stud[i].num, stud[i].age, stud[i].sex)。 fread(amp。i< 10。 exit(0)。 FILE *fp。 } stud[10]。 int age。 ? 程序如下: include struct studenttype { char name[10]。 ? 例 10個學生的數(shù)據(jù)。 將位置指針移到離當前位置50個字節(jié)處 ? fseek(fp, 10L, 2)。 ? 下面是 fseek函數(shù)調用的幾個例子: ? fseek(fp, 100L, 0)。這樣當文件的長度大于 64K時不致出問題。 ? “位移量”指以“起始點”為基點,向前移動的字節(jié)數(shù)。 ? fseek函數(shù)的調用形式為 fseek (文件類型指針,位移量,起始點 ) ? “起始點”用 0、 1或 2代替, 0代表“文件開始”,1為“當前位置”, 2為“文件末尾”。所謂隨機讀寫,是指讀寫完上一個字符 (字節(jié) )后,并不一定要讀寫其后續(xù)的址 ?字節(jié) ),而可以讀寫文件中任意所需的字符 (字節(jié) )。關鍵在于控制文件的位置指針,如果位置指針是按字節(jié)位置順序移動的,就是順序讀寫。執(zhí)行 rewind函數(shù),使文件的位置指針重 新定位于文件開頭,并使 feof函數(shù)的值恢復為0(假 )。fclose(fp2)。 while(! feof(fp1)) putc(getc(fp1), fp2)。 while(! feof(fp1)) putchar(getc(fp1))。 fp1=fopen(file1. c, r)。 ? 例 ,第一次將它的內(nèi)容顯示在屏幕上,第二次把它復制到另一文件上。 rewind函數(shù) ? rewind函數(shù)的作用是使位置指針重新返回文件的開頭。如果順序讀寫一個文件,每次讀寫一個字符,則讀寫完一個字符后,該位置指針自動移動指向下一個字符位置。 ? 這兩個函數(shù)類似以前介紹過的 gets和 puts函數(shù),只是 fgets和 fputs函數(shù)以指定的文件作為讀寫對象。若輸出成功,函數(shù)值為 0。 fputs函數(shù)中第一個參數(shù)可以是字符串常量、字符數(shù)組名或字符型指針。如 :fputs(China, fp)。 fgets函數(shù)返回值為 str的首地址。把它們放到字符數(shù)組 str中。如 : ? fgets(str, n, fp)。 } ? 同樣可以編寫出讀寫任何類型數(shù)據(jù)的函數(shù)。count< 4。num。 int count。如果所用的系統(tǒng)不提供這兩個函數(shù),用戶只好自己定義所需函數(shù)。但許多 C編譯都提供這兩個函數(shù),但有的 C編譯可能不 以 putw和 getw命名此兩函數(shù),而用其他函數(shù)名,請用時注意。 return(i)。 /*使 s指向 i的起始地址 */ s[0]=getc(fp)。 s=(char *)amp。 ? getw函數(shù)如下: getw(FILE *fp) { char s。順序輸出 s[0]、s[1]就相當于輸出了 i的兩個字節(jié)中的內(nèi)容。由于 *(s+0)就是 s[0], *(s+1)就是 s[1],因此, s[0]、 s[1]分別對應 i的第 1字節(jié)和第 2個字節(jié)。 } 當調用 putw函數(shù)時,如果用“ putw(10, fp)。putc(s[1], fp)。i。 putw函數(shù)如下: putw(int i, FILE *fp) { char s。的作用是從磁盤文件讀一個整數(shù)到內(nèi)存,賦給整型變量 i。 ? 它的作用是將整數(shù) 10輸出到 fp指向的文件。 其他讀寫函數(shù) ? 1. putw和 getw函數(shù) ? 大多數(shù) C編譯系統(tǒng)都提供另外兩個函數(shù): putw和getw,用來對磁盤文件讀寫一個字 (整數(shù) )。 ? 用 fprintf和 fscanf函數(shù)對磁盤文件讀寫,使用方便,容易理解,但由于在輸入時要將 ASCII碼轉換為二進制形式,在輸出時又要將二進制形式轉換成字符,花費時間比較多。t)。如果 i=3,t=4. 5,則輸出到磁盤文件上的是以下的字符串: ? 3, 4. 50 ? 同樣,用以下 fscanf函數(shù)可以從磁盤文件上讀入ASCII字符: fscanf(fp, %d, %f, amp。例如 : ? fprintf(fp, %d, %6. 2f, i, t)。它們的一般調用方式為 fprintf(文件指針,格式字符串,輸出表列 )。 } fprintf函數(shù)和 fscanf函數(shù) ? fprintf函數(shù)、 fscanf函數(shù)與 printf函數(shù)、 scanf函數(shù)作用相仿,都是格式化讀寫函數(shù)。 } 將 load函數(shù)加到本題原來的程序文件中,并將main函數(shù)改為 main( ) { load( )。} printf(file read error\n)。stud[i], sizeof(struct studenttype),1, fp)!=1) { if(feof(fp)){fclose (fp)。i< SIZE。 return。 int i。 ? 這個題目要求的是從鍵盤輸入數(shù)據(jù),如果已有的數(shù)據(jù)已以二進制形式存儲在一個磁盤文件“ studat”中,要求從其中讀入數(shù)據(jù)并輸出到“ stulist”文件中,可以編寫一個 load函數(shù),從磁盤文件中讀 二進制數(shù)據(jù)。如果用以下形式輸入數(shù)據(jù): ? Zhang 1001 10 room101 ? … ? 由于 fread函數(shù)要求一次輸入 29個字節(jié) (而不問這些字節(jié)的內(nèi)容 ),因此輸入數(shù)據(jù)中的空格也作為輸入數(shù)據(jù)而不作為數(shù)據(jù)間的分隔符了。stud[i], sizeof(struct studenttype), 1, stdin)。因為它們是按數(shù)據(jù)塊的長度來處理輸入輸出的,在字符發(fā)生轉換的情況下很可能出現(xiàn)與原設想的情況不同。 ? 如果企圖從“ stu_list”文件中以“ r”方式讀入數(shù)據(jù)就會出錯。最后在驗證程序中,用 printf函數(shù)輸出到屏幕, printf是格式輸出函數(shù),輸出 ASCII碼,在屏幕上顯示字符。在上面驗證程序中,又用 fread函數(shù)從“ stu_list”文件向內(nèi)存讀入數(shù)據(jù),注意此時用的是“ rb”方式,即二進制方式,數(shù)據(jù)按原樣輸入,也不發(fā)生字符轉換。在送到計算機內(nèi)存時,回車和換行符轉換成一個換行符。屏幕上顯示出以下信息: ? Zhang100119room101 ? Fun 1002 20 room102 Tan 1003 21 room103 Ling 1004 21 room104 ? 請注意輸入輸出數(shù)據(jù)的狀況。 fclose (fp)。stud[i].num, amp。stud[i], sizeof(str
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1