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

正文內(nèi)容

c程序設(shè)計文件ppt課件(編輯修改稿)

2025-02-11 08:55 本頁面
 

【文章內(nèi)容簡介】 exit(0)。 } if((out=fopen(outfile, w))==NULL) { printf(cannot open outfile\n)。 exit(0)。 } while(! feof(in))fputc(fgetc(in), out)。 fclose(in)。 fclose(out)。 } 運行情況如下: Enter the infile name: file1. c (輸入原有磁盤文件名 ) Enter the outfile name: file2. c (輸入新復(fù)制的磁盤文件名 ) ? 程序運行結(jié)果是將 file1. c文件中的內(nèi)容復(fù)制到file2. c中去??梢杂孟旅?DOS命令驗證 c> type file1. c puter and c(file1. c中的信息 ) c> type file2. c puter and c (file2. c中的信息 ) ? 以上程序是按文本文件方式處理的。也可以用此程序來復(fù)制一個二進制文件,只需將兩個 fopen函數(shù)中的“ r”和“ w”分別改為“ rb”和“ wb”即可。 ? 也可以在輸入命令行時把兩個文件名一起輸入。這時要用到 main函數(shù)的參數(shù)。程序可改為 include stdio. h main(int argc, char*argv[ ]) { FILE in, *out。 char ch。 if (argc! =3) { printf(You fot to enter a filename\n)。 exit(0)。 } if((in=fopen(argv[1], r))==NULL) { printf(cannot open infile\n)。 exit(0)。 } if((out=fopen(argv[2], w))==NULL) { printf(cannot open outfile\n)。 exit(0)。 } while(!feof(in)) fputc(fgetc(in), out)。 fclose(in)。 fclose(out)。 ? } ? 假若本程序的源文件名為 ,經(jīng)編譯連接后得到的可執(zhí)行文件名為 ,則在 DOS命令工作方式下,可以輸入以下的命令行: ? C> a file1. c file2. c ? 即在鍵入可執(zhí)行文件名后,再輸入兩個參數(shù)file1. c和 file2. c,分別輸入到 argv[1]和 argv[2]中, argv[0]的內(nèi)容為 a, argc的值等于 3(因為此命令行共有 3個參數(shù) )。如果輸入的參數(shù)少于 3個,則程序會輸出:“你忘了輸入一個文件名”。程序執(zhí)行結(jié)果是將 file1. c中的信息復(fù)制到 file2. c中。可以用以下命令驗證: C> type file1. c puter and c (這是 file1. c文件中的信息 ) C> type file2. c puter and c ? (這是 file2. c文件中的信息??梢?file1. c已復(fù)制到 file2. c中了 )。 ? 最后說明一點,為了書寫方便,系統(tǒng)把 fputc和fgetc定義為宏名 putc和 getc: define putc(ch, fp) fputc(ch, fp) define getc(fp) fgetc(fp) ? 這是在 stdio. h中定義的。因此,用 putc和 fputc及用 getc和 fgetc是一樣的。一般可以把它們作為相同的函數(shù)來對待。 fread函數(shù)和 fwrite函數(shù) ? 用 getc和 putc函數(shù)可以用來讀寫文件中的一個字符。但是常常要求一次讀入一組數(shù)據(jù) (例如,一個實數(shù)或一個結(jié)構(gòu)體變量的值 ), ANSI C標準提出設(shè)置兩個函數(shù) (fread和 fwrite),用來讀寫一個數(shù)據(jù)塊。它們的一般調(diào)用形式為 fread(buffer, siz e, count, fp)。 fwrite(buffer, siz e, count, fp)。 ? 其中: ? buffer:是一個指針。對 fread來說,它是讀入數(shù)據(jù)的存放地址。對 fwrite來說,是要輸出數(shù)據(jù)的地址 (以上指的是起始地址 )。 ? size:要讀寫的字節(jié)數(shù)。 ? count:要進行讀寫多少個 siz e字節(jié)的數(shù)據(jù)項。 ? fp:文件型指針。 ? 如果文件以二進制形式打開,用 fread和fwrite函數(shù)就可以讀寫任何類型的信息,如: ? fread(f, 4, 2, fp)。 ? 其中 f是一個實型數(shù)組名。一個實型變量占 4個字節(jié)。 ? 這個函數(shù)從 fp所指向的文件讀入 2次 (每次 4個字節(jié) )數(shù)據(jù),存儲到數(shù)組 f中。 ? 如果有一個如下的結(jié)構(gòu)體類型: struct studenttype { char name[10]。 int num。 int age。 char addr[30]。 } stud[40]。 ? 結(jié)構(gòu)體數(shù)組 stud有 40個元素,每一個元素用來存放一個學(xué)生的數(shù)據(jù) (包括姓名、學(xué)號、年齡、地址 )。 ? 假設(shè)學(xué)生的數(shù)據(jù)已存放在磁盤文件中,可以用下面的 for語句和 fread函數(shù)讀入 40個學(xué)生的數(shù)據(jù): for(i=0。i< 40。i++) fread(amp。stud[i], sizeof(struct studenttype), 1, fp)。 ? 同樣,以下 for語句和 fwrite函數(shù)可以將內(nèi)存中的學(xué)生數(shù)據(jù)輸出到磁盤文件中去: for(i=0。i< 40, i++) fwrite(amp。stud[i], sizeof(struct studenttype), 1, fp)。 ? 如果 fread或 fwrite調(diào)用成功,則函數(shù)返回值為count的值,即輸入或輸出數(shù)據(jù)項的完整個數(shù)。 ? 下面寫出一個完整的程序。 ? 例 4個學(xué)生的有關(guān)數(shù)據(jù),然后把它們轉(zhuǎn)存到磁盤文件上去。 include stdio. h define SIZE 4 struct studenttype { char name[10]。 int num。 int age。 char addr[15]。 } stud[SIZE]。 void save( ) { FILE fp。 int i。 if((fp=fopen(stulist, wb))==NULL) { printf(cannot open file\n)。 return。 } for(i=0。i< SIZE。i++) if(fwrite(amp。stud[i], sizeof(struct studenttype), 1, fp)!=1) printf(file write error\n)。 fclose (fp)。 } main() { int i。 for(i=0。i< SIZE。i++) scanf(%s%d%d%s, stud[i].name,amp。stud[i].num, amp。stud[i].age, stud[i].addr)。 save( )。 } ? 在 main函數(shù)中,從終端鍵盤輸入 4個學(xué)生的數(shù)據(jù),然后調(diào)用 save函數(shù),將這些數(shù)據(jù)輸出到以“ stu_list”命名的磁盤文件中。 fwrite函數(shù)的作用是將一個長度為 29字節(jié)的數(shù)據(jù)塊送到 stu_list文件中 (一個 student_type類型結(jié)構(gòu)體變量的長度為它的成員長度之和,即 10+2+2+15=29)。運行情況如下: ? 輸入 4個學(xué)生的姓名、學(xué)號、年齡和地址: ? Zhang 1001 19 room101 Fun 1002 20 room102
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1