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

正文內(nèi)容

c語言程序設(shè)計教程(四)ppt(編輯修改稿)

2024-11-13 04:11 本頁面
 

【文章內(nèi)容簡介】 清除和設(shè)置文件緩沖區(qū) ? (1).清除文件緩沖區(qū)函數(shù) ? int fflush(FILE *stream)。 ? int flushall()。 ? fflush()函數(shù)將清除由流指針 stream指向的文件緩沖區(qū)里的內(nèi)容,常用于寫完一些數(shù)據(jù)后,立即用該函數(shù)清除緩沖區(qū),以免誤操作時,破壞原來的數(shù)據(jù)。 ? flushall()將清除應(yīng)用程序打開的所有文件所對應(yīng)的文件緩沖區(qū)。 ? (2).設(shè)置文件緩沖區(qū)函數(shù) ? void setbuf (FILE *stream,char *buf)。 ? void setvbuf(FILE *stream,char *buf,int type,unsigned size)。 清除和設(shè)置文件緩沖區(qū)(續(xù) ) ? 這兩個函數(shù)將使應(yīng)用程序打開文件后,用戶可建立自己的文件緩沖區(qū),而不使用 fopen()函數(shù)打開文件設(shè)定的默認緩沖區(qū)。 ? 對于 setbuf()函數(shù), buf指出的緩沖區(qū)的長度,由頭文件 聲明的宏 BUFSIZE的值決定,缺省值為 512字節(jié)。當選定 buf為空時, setbuf()函數(shù)將使的文件 I/O不帶緩沖區(qū)。而對 setvbuf()函數(shù),則由 malloc函數(shù)來分配緩沖區(qū)。參數(shù) size指明了緩沖區(qū)的長度 (必須大于 0),而參數(shù) type則表示了緩沖的類型,其值可以取如下值: ? type 值 含義 ? _IOFBF 文件全部緩沖,即緩沖區(qū)裝滿后,才能對文件讀寫 ? _IOLBF 文件行緩沖,即緩沖區(qū)接收到一個換行符時,才能對文件讀寫 ? _IONBF 文件不緩沖,此時忽略 buf, size的值,直接讀寫文件,不再經(jīng)過文 件緩沖區(qū)緩沖 文件的隨機讀寫函數(shù) ? 前面介紹的是對文件的字符 /字符串進行讀寫操作,均是進行文件的順序讀寫,即總是從文件的開頭開始進行讀寫。這一節(jié)將講述 另一種文件讀寫操作:隨機讀寫操作。 ? C語言提供了移動文件指針和隨機讀寫的函數(shù),它們是: ? (1).移動文件指針函數(shù) ? long ftell(FILE *stream)。 ? int rewind(FILE *stream)。 ? int fseek(FILE *stream,long offset,int origin)。 ? 函數(shù) ftell()用來得到流指針 stream指向的文件中,文件指針離文件開頭的偏移量。當返回值是 1時表示出錯。 ? rewind()函數(shù)用于流指針 stream指向的文件中,文件指針移到文件的開頭,當移動成功時,返回 0,否則返回一個非 0值。 ? fseek()函數(shù)用于流指針 stream指向的文件中,把文件指針以origin為起點移動 offset個字節(jié)的操作。其中 origin指出的位置可有以下幾種: 文件的隨機讀寫函數(shù)(續(xù) ) ? origin 數(shù)值 代表的具體位置 ? SEEK_SET 0 文件開頭 ? SEEK_CUR 1 文件指針當前位置 ? SEEK_END 2 文件尾 ? 例如: ? fseek(fp,10L,0)。 ? 表示把文件指針從文件開頭移到第 10字節(jié)處,由于offseek()函數(shù)的第二個參數(shù)要求是長整型數(shù),故其數(shù)后帶 L。 ? fseek(fp,15L,2)。 ? 表示把文件指針從文件尾向前移動 15字節(jié)。 文件的隨機讀寫函數(shù)(續(xù) ) ? 例 106 向例 10- 5所建立的學(xué)生信息文件 生的信息,然后將文件中所有學(xué)生信息顯示在屏幕上。 ? include ? struct student ? { ? char name[10]。 ? int age。 ? int score。 ? char addr[30]。 ? }。 ? void main() ? { ? struct student stu。 ? FILE *fp。 文件的隨機讀寫函數(shù)(續(xù) ) ? /* 建立學(xué)生信息: */ ? printf(Enter student39。s name,address,age,score:)。 ? scanf(%s,)。 ? getchar()。 ? scanf(%s,)。 ? getchar()。 ? scanf(%d,%d,amp。,amp。)。 ? if((fp=fopen(,ab+))==NULL) /*ab+方式打開磁盤文件 */ ? { ? printf(Cannot open out file!\n)。 ? } ? fwrite(amp。stu,sizeof(struct student),1,fp)。 /*將數(shù)據(jù)追加寫入磁盤文件 */ ? rewind(fp)。 文件的隨機讀寫函數(shù)(續(xù) ) ? printf( name age score address\n)。 ? while(!feof(fp)) ? { ? fread(amp。stu,sizeof(struct student),1,fp)。 /*讀取一個 struct student數(shù)據(jù) */ ? printf(%10s %5d %5d %10s\n,)。 ? } ? printf(\n)。 ? fclose(fp)。 /* 關(guān)閉文件 */ ? } 文件的隨機讀寫函數(shù)(續(xù) ) ? 運行結(jié)果: ? Enter student39。s name, address, age, score:Guang Shenzhen 18, 88↙ ? name age score address ? Li 18 88 Shanghai↙ ? Ming 18 90 Shanghai↙ ? Chen 19 82 Shanghai↙ ? Qing 17 92 Shanghai↙ ? Long 17 90 Shanghai↙ ? Guang 18 88 Shenzhen↙ 文件的隨機讀寫函數(shù)(續(xù) ) ? 例 107 僅輸出由例 10- 5所建立的學(xué)生信息文件 所有學(xué)生姓名清冊,其他信息忽略。 ? 分析: struct student類型的數(shù)據(jù)建立的,struct student總長度為 44個字節(jié),其中 name成員長度為 10字節(jié),即意味著每讀完一個姓名,須由當前位置移動 34個字節(jié)才是下一個學(xué)生的姓名。 ? include ? struct student ? { ? char name[10]。 ? int age。 ? int score。 ? char addr[30]。 ? }。 文件的隨機讀寫函數(shù)(續(xù) ) ? void main() ? { ? char stu_name[10]。 ? FILE *fp。 ? if((fp=fopen(,ab+))==NULL) /* ab+方式打開磁盤文件 */ ? { ? printf(Cannot open out file!\n)。 ? } ? printf( Name:\n)。 ? while(!feof(fp)) ? { ? fread(stu_name,10,1,fp)。 /*讀取一個 name數(shù)據(jù) */ ? printf(\t%s\n,stu_name)。 /* 顯示 */ ? fseek(fp, 42L, 1) 。 ? } ? printf(\n)。 ? } 文件的隨機讀寫函數(shù)(續(xù) ) ? 運行結(jié)果: ? Name: ? Li ? Ming ? Chen ? Qing ? Long ? Guang 文件檢測函數(shù) ? C語言中常用的文件檢測函數(shù)有以下幾個: ? (1) 文件結(jié)束檢測函數(shù) feof()函數(shù) ? 調(diào)用格式: ? feof(文件指針 ) ; ? 功能:判斷文件是否處于文件結(jié)束位置,如文件結(jié)束,則返回值為 1,否則為 0。 ? (2) 讀寫文件出錯檢測函數(shù) ? 調(diào)用格式: ? ferror(文件指針 ) ; ? 功能:檢查文件在用各種輸入、輸出函數(shù)進行讀寫時是否出錯。如ferror()函數(shù)返回值為 0表示未出錯,否則表示有錯。 ? (3) 文件出錯標志和文件結(jié)束標志置 0函數(shù) ? 調(diào)用格式: ? clearerr(文件指針 ) ; ? 功能:本函數(shù)用于清除出錯標志和文件結(jié)束標志,使它們?yōu)?0值。 文件檢測函數(shù) (續(xù) ) ? 例 108 從鍵盤輸入一些字符值,將它們寫入磁盤文件,當鍵入 ” ”時結(jié)束。 ? include ? void main() ? { ? FILE *fp。 ? char ch,fname[10],err_flag = 0。 /* err_flag為讀寫磁盤文件出錯標志 */ ? printf(\nEnter a filename: )。 ? scanf(%s,fname)。 ? if((fp=fopen(fname,w))==NULL) /* 打開 (建立 )磁盤文件 */ ? { ? printf(Cannot open out file!\n)。 ? } 文件檢測函數(shù) (續(xù) ) ? while((ch=getchar())!= 39。39。) ? { ? fputc(ch, fp)。 /* 寫入磁盤文件 */ ? if(ferror(fp)) /* 測試讀寫磁盤文件是否有錯 */ ? { ? err_flag=1。 /* 錯誤處理 */ ? break。 ? } ? putchar(ch)。 ? } ? if(err_flag) ? printf(\nWrite disk err!\n)。 /* 屏幕提示讀寫錯誤 */ ? else ? printf(\!\n)。 /* 屏幕提示讀寫正確 */ ? } 文件檢測函數(shù) (續(xù) ) ? 運行結(jié)果: ? Enter a filename: ↙ ? I love china ? I love china ? ! C庫文件 ? C系統(tǒng)提供了豐富的系統(tǒng)文件,稱為庫文件。C的庫文件分為兩類,一類是擴展名為" .h"的文件,稱為頭文件,在前面的包含命令中我們已多次使用過。在" .h"文件中包含了常量聲明、類型聲明、宏聲明、函數(shù)原型以及各種編譯選擇設(shè)置等信息。另一類是函數(shù)庫,包括了各種函數(shù)的目標代碼,供用戶在程序中調(diào)用。通常在程序中調(diào)用一個庫函數(shù)時,要在調(diào)用之前包含該函數(shù)原型所在的" .h"文件。 ? 例 109 將例 10- 8所建立的磁盤文件( )中的信息復(fù)制到另一個磁盤文件 ()。此例類似于 DOS操作系統(tǒng)的COPY命令的功能,可以考慮在命令行輸入兩個文件名。 ? include ? include ? int main(int argc,char *argv[]) ? { C庫文件 (續(xù) ) ? FILE *f_in, *f_out。 ? /* 檢查命令參數(shù)數(shù)目是否符合要求: */ ? if(argc3) ? { ? printf(Please enter mand again!\n)。 ? exit(0)。 ? } ? /* 打開源磁盤文件: */ ? if((f_in = fopen(argv[1],rb))==NULL) ? { ? printf(Cannot open in file!\n)。 ? exit(0)。 ? } C庫文件 (續(xù) ) ? /* 打開目的磁盤文件: */ ? if((f_out=fopen(argv[2], wb))==NULL) ? { ? printf(Cannot open out file!\n)。 ? exit(0)。 ? } ? /* 復(fù)制文件: */ ? for( 。!feof(f_in)。fputc(fgetc(f_in),f_out))。 ? fclose(f_in)。 ? fclose(f_out)。 ? printf(\!\n)。 C庫文件 (續(xù) ) ? /* 驗證輸出: */ ? for(f_out=fopen(argv[2],r)。!feof(f_ou
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1