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

正文內(nèi)容

c語言程序設(shè)計(jì)教程(四)ppt-在線瀏覽

2024-12-04 04:11本頁面
  

【正文】 ile cannot be opened\n)。 ? } ? while((ch=fgetc(fp))!=EOF) ? fputc(ch,stdout)。 ? } 文件的讀寫 (續(xù) ) ? 運(yùn)行結(jié)果如下: ? Hello World ! ? 其中 。用 fgetc()函數(shù)將文件指針 fp指定的字符讀到 ch變量中,然后用 fputc()函數(shù)在屏幕上顯示,當(dāng)讀到文件結(jié)束標(biāo)志EOF時(shí),關(guān)閉該文件。 ? 又比如: ? fputc(ch,fp)。 ? putchar(c) ? 相當(dāng)于 ? fputc(c, stdout); 文件的讀寫 (續(xù) ) ? getchar() ? 相當(dāng)于 ? fgetc(stdin)。所以,某些使用,我們都聲明成 int ch。 ? char *gets(char *s)。 ? int fputs(char *string,FILE *stream)。 ? int fscanf(FILE *stream,char *format,variablelist)。 ? 例如: ? fgets(buffer,9,fp)。 ? 注意: fgets()函數(shù)讀到 39。就停止,而不管是否達(dá)到數(shù)目要求。\039。如果讀到文件尾或出錯(cuò),則均返回一個(gè)空指針 NULL,所以長用 feof()函數(shù)來測定是否到了文件尾或者是 ferror()函數(shù)來測試是否出錯(cuò),例如下面的程序用 fgets()函數(shù)讀 。 ? include ? include ? void main() ? { ? FILE *fp。 ? if((fp=fopen(,r))==NULL) ? { ? printf(cannot open file\n)。 ? } 文件的讀寫 (續(xù) ) ? while(!feof(fp)) ? { ? if(fgets(str,128,fp)!=NULL) ? printf(%s,str)。 ? } ? 運(yùn)行結(jié)果: ? Hello China! ? Hello Student! 文件的讀寫 (續(xù) ) ? gets()、 puts()函數(shù)專用于標(biāo)準(zhǔn)輸入、輸出設(shè)備的字符串讀寫。因此執(zhí)行到什么時(shí)候?yàn)橹梗枰脩暨M(jìn)行控制,否則可能造成存儲區(qū)的溢出。\039。 ? fprintf()和 fscanf()同 printf()和 scanf()函數(shù)類似,不同之處就是printf()函數(shù)是向顯示器輸出, fprintf()則是向流指針 stream指向的文件輸出; fscanf()則是向流指針 stream指向的文件輸入。 ? include ? include 文件的讀寫 (續(xù) ) ? void main() ? { ? char *s= That39。 ? int i=617。 ? fp=fopen(,w)。 /*向所建文件寫入一串字符 */ ? fputc(39。,fp)。 /*向所建文件寫一整型數(shù) */ ? fprintf(fp,%s,s)。 ? } 文件的讀寫 (續(xù) ) ? 用 DOS的 TYPE命令顯示 : ? Your score of TOEFL is: 617 ↙ ? That39。 ? include ? include ? void main() ? { ? char *s,m[20]。 ? FILE *fp。 ? fp=fopen(,r)。 /*從文件中讀取 23個(gè)字符 */ ? printf(%s,s)。i)。 ? putchar(fgetc(fp))。 /*讀取 16個(gè)字符 */ ? puts(m)。 ? fclose(fp)。 ? int fwrite(void *ptr,int size,int nitems,FILE *stream)。在執(zhí)行 fread()函數(shù)時(shí),文件指針隨著讀取的字節(jié)數(shù)而向后移動,最后移動結(jié)束的位置等于實(shí)際讀出的字節(jié)數(shù)。當(dāng)返回?cái)?shù)不等于 nitems時(shí),可以用 feof()或 ferror()函數(shù)進(jìn)行檢查。執(zhí)行該操作后,文件指針將向后移動,移動的字節(jié)數(shù)等于寫入文件的字節(jié)數(shù)目。 ? 注意:在調(diào)用 fwrite()函數(shù)和 fread()函數(shù)時(shí),應(yīng)該知道要操作的數(shù)據(jù)的類型格式,這樣才能把處理數(shù)據(jù)進(jìn)行寫入或讀入操作。然后再從文件讀出信息并顯示再屏幕上。 ? int age。 ? char addr[30]。 ? int savedata(struct student stua[],int m)。 文件的讀寫 (續(xù) ) ? void main() ? { ? struct student stua[SIZE]。 iSIZE。 ? scanf(%s,stua[i].name)。 ? scanf(%s, stua[i].addr) 。 ? scanf(%d,%d,amp。stua[i].score)。 ? } 文件的讀寫 (續(xù) ) ? if(savedata(stua,SIZE)) ? read_print()。 ? if((fp=fopen(,wb))==NULL) /* 打開磁盤文件 */ ? { ? printf(Cannot open out file!\n)。 ? } 文件的讀寫 (續(xù) ) ? for(int i = 0。 i++) ? fwrite(amp。 ? /* 將 stua[i]寫入磁盤文件 */ ? fclose(fp)。 ? } ? /* read_print()函數(shù)功能是:將文件 */ ? void read_print() ? { ? struct student stu。 ? if((fp=fopen(,rb))==NULL) /* 打開目標(biāo)磁盤文件 */ 文件的讀寫 (續(xù) ) ? { ? printf(Cannot open out file!\n)。 ? } ? printf(\n)。 ? while(!feof(fp)) ? { ? fread(amp。 /* 讀取一個(gè) struct student數(shù)據(jù) */ ? printf(%10s %5d %5d %10s\n,)。 ? fclose(fp)。 ? int flushall()。 ? flushall()將清除應(yīng)用程序打開的所有文件所對應(yīng)的文件緩沖區(qū)。 ? void setvbuf(FILE *stream,char *buf,int type,unsigned size)。 ? 對于 setbuf()函數(shù), buf指出的緩沖區(qū)的長度,由頭文件 聲明的宏 BUFSIZE的值決定,缺省值為 512字節(jié)。而對 setvbuf()函數(shù),則由 malloc函數(shù)來分配緩沖區(qū)。這一節(jié)將講述 另一種文件讀寫操作:隨機(jī)讀寫操作。 ? int rewind(FILE *stream)。 ? 函數(shù) ftell()用來得到流指針 stream指向的文件中,文件指針離文件開頭的偏移量。 ? rewind()函數(shù)用于流指針 stream指向的文件中,文件指針移到文件的開頭,當(dāng)移動成功時(shí),返回 0,否則返回一個(gè)非 0值。其中 origin指出的位置可有以下幾種: 文件的隨機(jī)讀寫函數(shù)(續(xù) ) ? origin 數(shù)值 代表的具體位置 ? SEEK_SET 0 文件開頭 ? SEEK_CUR 1 文件指針當(dāng)前位置 ? SEEK_END 2 文件尾 ? 例如: ? fseek(fp,10L,0)。 ? fseek(fp,15L,2)。 文件的隨機(jī)讀寫函數(shù)(續(xù) ) ? 例 106 向例 10- 5所建立的學(xué)生信息文件 生的信息,然后將文件中所有學(xué)生信息顯示在屏幕上。 ? int age。 ? char addr[30]。 ? void main() ? { ? struct student stu。 文件的隨機(jī)讀寫函數(shù)(續(xù) ) ? /* 建立學(xué)生信息: */ ? printf(Enter student39。 ? scanf(%s,)。 ? scanf(%s,)。 ? scanf(%d,%d,amp。)。 ? } ? fwrite(amp。 /*將數(shù)據(jù)追加寫入磁盤文件 */ ? rewind(fp)。 ? while(!feof(fp)) ? { ? fread(amp。 /*讀取一個(gè) struct student數(shù)據(jù) */ ? printf(%10s %5d %5d %10s\n,)。 ? fclose(fp)。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↙ 文件的隨機(jī)讀寫函數(shù)(續(xù) ) ? 例 107 僅輸出由例 10- 5所建立的學(xué)生信息文件 所有學(xué)生姓名清冊,其他信息忽略。 ? include ? struct student ? { ? char name[10]。 ? int score。 ? }。 ? FILE *fp。 ? } ? printf( Name:\n)。 /*讀取一個(gè) name數(shù)據(jù) */ ? printf(\t%s\n,stu_name)。 ? } ? printf(\n)。 ? (2) 讀寫文件出錯(cuò)檢測函數(shù) ? 調(diào)用格式: ? ferror(文件指針 ) ; ? 功能:檢查文件在用各種輸入、輸出函數(shù)進(jìn)行讀寫時(shí)是否出錯(cuò)。 ? (3) 文件出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志置 0函數(shù) ? 調(diào)用格式: ? clearerr(文件指針 ) ; ? 功能:本函數(shù)用于清除出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志,使它們?yōu)?0值。 ? include ? void main() ? { ? FILE *fp。 /* err_flag為讀寫磁盤文件出錯(cuò)標(biāo)志 */ ? printf(\nEnter a filename: )。 ? if((fp=fopen(fname,w))==NULL) /* 打開 (建立 )磁盤文件 */ ? { ? printf(Cannot open out file!\n)。39。 /* 寫入磁盤文件 */ ? if(ferror(fp)) /* 測試讀寫磁盤文件是否有錯(cuò) */ ? { ? err_flag=1。 ? } ? putchar(ch)。 /* 屏幕提示讀寫錯(cuò)誤 */ ? else ? printf(\!\n)。C的庫文件分為兩類,一類是擴(kuò)展名為" .h"的文件,稱為頭文件,在前面的包含命令中我們已多次使用過。另一類是函數(shù)庫,包括了各種函數(shù)的目標(biāo)代碼,供用戶在程序中調(diào)用。 ? 例 109 將例 10- 8所建立的磁盤文件( )中的信息復(fù)制到另一個(gè)磁盤文件 ()。 ? include ? include ? int main(int argc,char *argv[]) ? { C庫文件 (續(xù) ) ? FILE *f_in, *f_out。 ? exit(0)。 ? exit(0)。 ? exit(0)。!feof(f_in)。 ? fclose(f_in)。 ? printf(\!\n)。!feof(f_out)。 ? printf( Is all right?\n)。 ? } ? 若將本例程序命名為 ,經(jīng)編譯后的可執(zhí)行程序?yàn)?,則 ? 運(yùn)行結(jié)果: ? exam ? ! ? I love china ? Is all right? C庫文件 (續(xù) ) ? 例 1010 建立一個(gè)乘法口訣的文本格式文件 ,其格式為: ? 1*1= 1 ? 1*2= 2 2*2= 4 ? 1*3= 3 2*3= 6 3*3= 9 ? …… ? 1*9= 9
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1