版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、10.1 文件的有關(guān)概念 10.2 文件的打開與關(guān)閉 10.3 文件的順序讀寫 10.4 文件的隨機(jī)讀寫 10.5 提高部分,第10章 利用文件保存數(shù)據(jù),P275,10.1 文件的有關(guān)概念,10.1.1 什么是文件 10.1.2 文件名 10.1.3 文件的分類 10.1.4 文件緩沖區(qū) 10.1.5 文件指針,P275,10.1.1 什么是文件,P275,文件有不同的類型,在程序設(shè)計中,主要用到兩種文件: (1) 程序文件。包括源程序文件(后綴為.c)、目標(biāo)文件(后綴為.obj)、可執(zhí)行文件(后綴為.exe)等。這種文件的內(nèi)容是程序代碼。,10.1.1 什么是文件,P275,文件有不同的類型
2、,在程序設(shè)計中,主要用到兩種文件: (2) 數(shù)據(jù)文件。文件的內(nèi)容不是程序,而是供程序運(yùn)行時讀寫的數(shù)據(jù),如在程序運(yùn)行過程中輸出到磁盤(或其他外部設(shè)備)的數(shù)據(jù),或在程序運(yùn)行過程中供讀入的數(shù)據(jù)。如一批學(xué)生的成績數(shù)據(jù),或貨物交易的數(shù)據(jù)等。 本章主要討論的是數(shù)據(jù)文件,10.1.1 什么是文件,P275,在以前各章中所處理的數(shù)據(jù)的輸入和輸出,從終端的鍵盤輸入數(shù)據(jù),運(yùn)行結(jié)果輸出到終端顯示器上 常常需要將一些數(shù)據(jù)輸出到磁盤上保存起來,以后使用 這就要用到磁盤文件,10.1.1 什么是文件,P275,操作系統(tǒng)把各種設(shè)備都統(tǒng)一作為文件處理 從操作系統(tǒng)的角度看,每一個與主機(jī)相聯(lián)的輸入輸出設(shè)備都看作是文件。例如, 終
3、端鍵盤是輸入文件 顯示屏和打印機(jī)是輸出文件,10.1.1 什么是文件,P275,“文件”指存儲在外部介質(zhì)上數(shù)據(jù)的集合 一批數(shù)據(jù)是以文件的形式存放在外部介質(zhì)上的 操作系統(tǒng)是以文件為單位對數(shù)據(jù)進(jìn)行管理 想找存放在外部介質(zhì)上的數(shù)據(jù),先按文件名找到所指定的文件,然后再從該文件讀數(shù)據(jù) 要向外部介質(zhì)上存儲數(shù)據(jù)也必須先建立一個文件(以文件名作為標(biāo)志),才能向它輸出數(shù)據(jù),10.1.1 什么是文件,P275,輸入輸出是數(shù)據(jù)傳送的過程,數(shù)據(jù)如流水一樣從一處流向另一處,因此常將輸入輸出形象地稱為流(stream),即數(shù)據(jù)流。流表示了信息從源到目的端的流動。 輸入操作時,數(shù)據(jù)從文件流向計算機(jī)內(nèi)存 輸出操作時,數(shù)據(jù)從計
4、算機(jī)流向文件,10.1.1 什么是文件,P275,語言把文件看作是一個字符(或字節(jié))的序列。一個輸入輸出流就是一個字符流或字節(jié)(內(nèi)容為二進(jìn)制數(shù)據(jù))流。,10.1.1 什么是文件,P275,的數(shù)據(jù)文件由一連串的字符(或字節(jié))組成,中間沒有分隔符,對文件的存取是以字符(字節(jié))為單位的,允許對文件存取一個字符。輸入輸出數(shù)據(jù)流的開始和結(jié)束僅受程序控制而不受物理符號(如回車換行符)控制,這就增加了處理的靈活性。這種文件稱為“流式文件”。,10.1.2 文件名,P276,文件要有一個唯一的文件標(biāo)識,以便用戶識別和引用。 文件標(biāo)識包括3部分: (1)文件路徑 (2)文件名主干 (3)文件后綴,10.1.2
5、文件名,P276,文件路徑表示文件在外部存儲設(shè)備中的位置。如: d: cctempfile1.dat 表示file1.dat文件存放在d盤中的cc目錄下的temp子目錄下面,文件路徑,文件名主干,文件后綴,10.1.2 文件名,P276,文件路徑表示文件在外部存儲設(shè)備中的位置。如: d: cctempfile1.dat 表示file1.dat文件存放在d盤中的cc目錄下的temp子目錄下面,文件名,10.1.2 文件名,P276,文件路徑表示文件在外部存儲設(shè)備中的位置。如: d: cctempfile1.dat 表示file1.dat文件存放在d盤中的cc目錄下的temp子目錄下面,命名規(guī)則遵
6、循標(biāo)識符的命名規(guī)則,10.1.2 文件名,P276,文件路徑表示文件在外部存儲設(shè)備中的位置。如: d: cctempfile1.dat 表示file1.dat文件存放在d盤中的cc目錄下的temp子目錄下面,一般不超過3個字母(doc、txt、dat、c、cpp、obj、exe、ppt、bmp等),10.1.3 文件的分類,P276,根據(jù)數(shù)據(jù)的組織形式,數(shù)據(jù)文件可分為ASCII文件和二進(jìn)制文件。 數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存儲的,如果不加轉(zhuǎn)換地輸出到外存,就是二進(jìn)制文件 如果要求在外存上以ASCII代碼形式存儲,則需要在存儲前進(jìn)行轉(zhuǎn)換 ASCII文件又稱文本文件,每一個字節(jié)放一個字符的ASCI
7、I代碼,10.1.3 文件的分類,P276,(1),(0),(0),(0),(0),ASCII形式,二進(jìn)制形式,(10000),10.1.4 文件緩沖區(qū),P277,ANSI C標(biāo)準(zhǔn)采用“緩沖文件系統(tǒng)”處理數(shù)據(jù)文件 所謂緩沖文件系統(tǒng)是指系統(tǒng)自動地在內(nèi)存區(qū)為程序中每一個正在使用的文件開辟一個文件緩沖區(qū),10.1.4 文件緩沖區(qū),P277,從內(nèi)存向磁盤輸出數(shù)據(jù)必須先送到內(nèi)存中的緩沖區(qū),裝滿緩沖區(qū)后才一起送到磁盤去 如果從磁盤向計算機(jī)讀入數(shù)據(jù),則一次從磁盤文件將一批數(shù)據(jù)輸入到內(nèi)存緩沖區(qū)(充滿緩沖區(qū)),然后再從緩沖區(qū)逐個地將數(shù)據(jù)送到程序數(shù)據(jù)區(qū)(給程序變量),10.1.4 文件緩沖區(qū),P277,程序數(shù)據(jù)區(qū)
8、,輸出文件緩沖區(qū),輸入文件緩沖區(qū),磁盤,從內(nèi)存向磁盤輸出數(shù)據(jù),裝滿緩沖區(qū),10.1.4 文件緩沖區(qū),P277,程序數(shù)據(jù)區(qū),輸出文件緩沖區(qū),輸入文件緩沖區(qū),磁盤,從磁盤向計算機(jī)讀入數(shù)據(jù),充滿緩沖區(qū),10.1.5 文件指針,P277,緩沖文件系統(tǒng)中,關(guān)鍵的概念是“文件類型指針”,簡稱“文件指針” 每個被使用的文件都在內(nèi)存中開辟一個相應(yīng)的文件信息區(qū),用來存放文件的有關(guān)信息(如文件的名字、文件狀態(tài)及文件當(dāng)前位置等) 這些信息是保存在一個結(jié)構(gòu)體變量中的。該結(jié)構(gòu)體類型是由系統(tǒng)聲明的,取名為FILE,10.1.5 文件指針,P277,聲明FILE結(jié)構(gòu)體類型的信息包含在頭文件“stdio.h”中 一般設(shè)置一個
9、指向FILE類型變量的指針變量,然后通過它來引用這些FILE類型變量,10.1.5 文件指針,P277,FILE*fp1,*fp2,*fp3;,文件f1的 文件信息區(qū),fp1,文件f2的 文件信息區(qū),fp2,文件f3的 文件信息區(qū),fp3,10.2 文件的打開與關(guān)閉,10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件 10.2.2 用fclose函數(shù)關(guān)閉文件,P278,10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,對文件讀寫之前應(yīng)該“打開”該文件,在使用結(jié)束之后應(yīng)“關(guān)閉”該文件。 所謂“打開”是指為文件建立相應(yīng)的信息區(qū)(用來存放有關(guān)文件的信息)和文件緩沖區(qū)(用來暫時存放輸入輸出的數(shù)據(jù))。,10
10、.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,在編寫程序時,在打開文件的同時,一般都指定一個指針變量指向該文件,也就是建立起指針變量與文件之間的聯(lián)系,這樣就可以通過該指針變量對文件進(jìn)行讀寫 所謂“關(guān)閉”是指撤銷文件信息區(qū)和文件緩沖區(qū),10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,fopen函數(shù)的調(diào)用方式為: fopen(文件名,使用文件方式); 例如: fopen(“a1”,”r”); 表示要打開名為“a1”的文件,使用文件方式為“讀入” fopen函數(shù)的返回值是指向a1文件的指針,10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,通常將fopen函數(shù)的返回值賦給一個指向文件的
11、指針變量。如: FILE *fp; fp=fopen(“a1”,”r”); fp和文件a1相聯(lián)系,fp指向了a1文件,10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,在打開一個文件時,通知編譯系統(tǒng)以下3個信息: 需要訪問的文件的名字 使用文件的方式(“讀”還是“寫”等) 讓哪一個指針變量指向被打開的文件 使用文件方式參見教材表10.1。,10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,說明: (1) 最基本的是“r”,“w”,“a”三種方式。在其后加“b”表示是二進(jìn)制文件,“+”表示既可讀又可寫。,10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,說明: (2) 如果不能實(shí)現(xiàn)“
12、打開”的任務(wù),fopen函數(shù)將會帶回一個出錯信息。出錯的原因可能是用“r”方式打開一個并不存在的文件;磁盤出故障;磁盤已滿無法建立新文件等。此時fopen函數(shù)將帶回一個空指針值NULL。,10.2.1 用fopen函數(shù)打開數(shù)據(jù)文件,P278,常用下面的方法打開一個文件: if (fp=fopen(“file1”,r)=NULL) printf(“cannot open this filen”); exit(0); ,終止正在執(zhí)行的程序,10.2.2 用fclose函數(shù)關(guān)閉文件,P280,關(guān)閉文件用fclose函數(shù)。fclose函數(shù)調(diào)用的一般形式為 fclose(文件指針); 例如: fclos
13、e (fp); 如果不關(guān)閉文件將會丟失數(shù)據(jù)。,10.3 文件的順序讀寫,P280,在順序?qū)憰r,先寫入的數(shù)據(jù)存放在文件中前面,后寫入的數(shù)據(jù)存放在文件中后面 在順序讀時,先讀文件中前面的數(shù)據(jù),后讀文件中后面的數(shù)據(jù) 對順序讀寫來說,對文件讀寫數(shù)據(jù)的順序和數(shù)據(jù)在文件中的物理順序是一致的 順序讀寫需要用庫函數(shù)實(shí)現(xiàn),10.3.1 向文件讀寫一個字符 10.3.2 向文件讀寫一個字符串 10.3.3 文件的格式化讀寫 10.3.4 用二進(jìn)制方式讀寫文件,10.3 文件的順序讀寫,P280,10.3.1 向文件讀寫一個字符,P280,讀寫一個字符的函數(shù),例10.1 從鍵盤輸入一些字符,逐個把它們送到磁盤上去,
14、直到用戶輸入一個“”為止。 解題思路:用fgetc函數(shù)從鍵盤逐個輸入字符,然后用fputc函數(shù)寫到磁盤文件即可。,#include #include void main() FILE *fp; char ch,filename10; printf(請輸入所用的文件名:); scanf(%s,filename); if(fp=fopen(filename,“w”)=NULL) printf(無法打開此文件n); exit(0); ch=getchar( );,接收最后輸入的回車符,輸入文件名,只寫,用exit函數(shù)時加,printf(“請輸入一個字符串(以#結(jié)束):); ch=getchar( )
15、; while(ch!=#) fputc(ch,fp); putchar(ch); ch=getchar(); fclose(fp); putchar(10); ,例10.2 將一個磁盤文件中的信息復(fù)制到另一個磁盤文件中。 今要求將上例建立的file1.dat文件中的內(nèi)容復(fù)制到另一個磁盤文件file2.dat中。 解題思路:處理此問題的算法是:從file1.dat文件中逐個讀入字符,然后逐個輸出到file2.dat中。,#include #include void main( ) FILE *in,*out; char ch,infile10,outfile10; printf(輸入讀入文件的
16、名字:); scanf(%s,infile); printf(輸入輸出文件的名字:); scanf(“%s”,outfile); if(in=fopen(infile,“r”)=NULL) printf(無法打開此文件n); exit(0); if(out=fopen(outfile,“w”)=NULL) printf(無法打開此文件n); exit(0); ,改為rb和wb,則復(fù)制一個二進(jìn)制文件,while(!feof(in) ch=fgetc(in); fputc(ch,out); putchar(ch); putchar(10); fclose(in); fclose(out); ,檢查
17、當(dāng)前讀寫位置是否移到文件末尾,10.3.2 向文件讀寫一個字符串,P284,讀寫一個字符串的函數(shù),說明: (1)用fgets函數(shù)可以從指定的文件讀入一個字符串。如: fgets(str,n,fp);,說明: fgets(str,n,fp);中n是要求得到的字符個數(shù),但實(shí)際上只讀n-1個字符,然后在最后加一個0字符,這樣得到的字符串共有n個字符,把它們放到字符數(shù)組str中 如果在讀完n-1個字符之前遇到換行符“n”或文件結(jié)束符EOF,讀入即結(jié)束,但將所遇到的換行符“n”也作為一個字符讀入 執(zhí)行fgets成功,返回str數(shù)組首地址,如果一開始就遇到文件尾或讀數(shù)據(jù)錯,返回NULL,說明: (2)用f
18、puts函數(shù)可以向指定的文件輸出一個字符串。如: fputs(Chian,fp); fputs函數(shù)中第一個參數(shù)可以是字符串常量、字符數(shù)組名或字符型指針 字符串末尾的0不輸出 輸出成功,函數(shù)值為;失敗,函數(shù)值為EOF,例10.3 從鍵盤讀入若干個字符串,對它們按字母大小的順序排序,然后把排好序的字符串送到磁盤文件中保存。 解題思路:為解決問題,可分為三個步驟: 從鍵盤讀入n個字符串,存放在一個二維字符數(shù)組中,每一個一維數(shù)組存放一個字符串; 對字符數(shù)組中的n個字符串按字母順序排序,排好序的字符串仍存放在字符數(shù)組中; 將字符數(shù)組中的字符串順序輸出。,#include #include #includ
19、e void main() FILE *fp; char str310,temp10; int i,j,k,n=3; printf(“Enter strings:n”); for(i=0;in;i+) gets(stri);,for(i=0;i0) k=j; if(k!=i) strcpy(temp,stri); strcpy(stri,strk); strcpy(strk,temp); ,if(fp=fopen(“D:CCstring.dat”, “w”)=NULL) printf(cant open file!n); exit(0); printf(nThe new sequence:n)
20、; for(i=0;in;i+) fputs(stri,fp); fputs(“n”,fp); printf(“%sn”,stri); ,人為地輸出一個n,為了驗(yàn)證輸出到磁盤文件中的內(nèi)容,可以編寫出以下的程序,從該文件中讀回字符串,并在屏幕上顯示。,#include #include void main() FILE *fp; char str310; int i=0; if(fp=fopen(“D:CCstring.dat”, “r”)=NULL) printf(cant open file!n);exit(0); while(fgets(stri,10,fp)!=NULL) printf(
21、%s,stri); i+; fclose (fp); ,不用人為地輸出n,10.3.3 文件的格式化讀寫,P287,一般調(diào)用方式為: fprintf(文件指針,格式字符串,輸出表列); fscanf (文件指針,格式字符串,輸入表列); 如: fprintf (fp,”%d,%6.2f”,i,f); fscanf (fp,”%d,%f”,10.3.4 用二進(jìn)制方式讀寫文件,P288,一般調(diào)用形式為: fread(buffer,size,count,fp); fwrite(buffer,size,count,fp);,10.3.4 用二進(jìn)制方式讀寫文件,P288,buffer:是一個地址 對fr
22、ead來說,它是用來存放從文件讀入的數(shù)據(jù)的存儲區(qū)的地址 對fwrite來說,是要把此地址開始的存儲區(qū)中的數(shù)據(jù)向文件輸出 size:要讀寫的字節(jié)數(shù) count:要讀寫多少個數(shù)據(jù)項(xiàng) fp:FILE類型指針,例10.4 從鍵盤輸入10個學(xué)生的有關(guān)數(shù)據(jù),然后把它們轉(zhuǎn)存到磁盤文件中。,#include #define SIZE 10 struct student_type char name10; int num; int age; char addr15; studSIZE;,void save( ) FILE *fp; int i; if(fp=fopen(stu_dat,wb)=NULL) pri
23、ntf(cannot open filen); return; for(i=0;iSIZE;i+) if(fwrite( ,10+4+4+15=33,實(shí)際上開辟36字節(jié),是4的倍數(shù),當(dāng)前路徑下的文件,void main() int i; printf(“enter data of students:n); for(i=0;iSIZE;i+) scanf(%s%d%d%s, , ,為了驗(yàn)證在磁盤文件“stu_dat”中是否已存在此數(shù)據(jù),可以用以下程序從“stu_dat”文件中讀入數(shù)據(jù),然后在屏幕上輸出。,#include #define SIZE 10 struct stud
24、ent_type char name10; int num; int age; char addr15; studSIZE;,void main( ) int i; FILE *fp; if(fp=fopen(stu_dat,rb)=NULL) printf(cannot open filen); return; for(i=0;iSIZE;i+) fread ( ,如果從已有的二進(jìn)制文件“stu_list”中,讀入數(shù)據(jù)并輸出到“stu_dat”文件中,可以編寫一個如下的load函數(shù),從磁盤文件“stu_list”中讀二進(jìn)制數(shù)據(jù),并存放在stud數(shù)組中。,void load( ) FILE *
25、fp; int i; if(fp=fopen(stu_list,rb)=NULL) printf(cannot open infilen); return; for(i=0;iSIZE;i+) if(fread( ,void main() load(); save(); ,10.4 文件的隨機(jī)讀寫,P291,對文件進(jìn)行順序讀寫比較容易理解,也容易操作,但有時效率不高 隨機(jī)訪問不是按數(shù)據(jù)在文件中的物理位置次序進(jìn)行讀寫,而是可以對任何位置上的數(shù)據(jù)進(jìn)行訪問,顯然這種方法比順序訪問效率高得多,10.4 文件的隨機(jī)讀寫,10.4.1 文件位置指針及其定位 10.4.2 隨機(jī)讀寫文件,P291,10.4.
26、1 文件位置指針及其定位,P292,1.文件的位置指針 為了對讀寫進(jìn)行控制,系統(tǒng)為每個文件設(shè)置了一個位置指針,用來指示當(dāng)前的讀寫位置。,10.4.1 文件位置指針及其定位,P292,1.文件的位置指針,文件指針,讀寫當(dāng)前位置,文件尾,文件頭,10.4.1 文件位置指針及其定位,P292,1.文件的位置指針 一般情況下,在對字符文件進(jìn)行順序讀寫時,文件標(biāo)記指向文件開頭,進(jìn)行讀的操作時,就讀第一個字符,然后文件標(biāo)記向后移一個位置,在下一次讀操作時,就將位置標(biāo)記指向的第二個字符讀入。依此類推,直到遇文件尾,結(jié)束,10.4.1 文件位置指針及其定位,P292,1.文件的位置指針 如果是順序?qū)懳募?,則每
27、寫完一個數(shù)據(jù)后,文件標(biāo)記順序向后移一個位置,然后在下一次執(zhí)行寫操作時把數(shù)據(jù)寫入指針?biāo)傅奈恢?。直到把全部?shù)據(jù)寫完,此時文件位置標(biāo)記在最后一個數(shù)據(jù)之后,10.4.1 文件位置指針及其定位,P292,1.文件的位置指針 可以根據(jù)讀寫的需要,人為地移動了文件標(biāo)記的位置。文件標(biāo)記可以向前移、向后移,移到文件頭或文件尾,然后對該位置進(jìn)行讀寫隨機(jī)讀寫 隨機(jī)讀寫可以在任何位置寫入數(shù)據(jù),在任何位置讀取數(shù)據(jù),10.4.1 文件位置指針及其定位,P292,2. 文件位置指針的定位 可以強(qiáng)制使文件位置指針指向指定的位置 用以下函數(shù)實(shí)現(xiàn): (1)用rewind函數(shù)使文件指針指向文件頭 rewind函數(shù)的作用是使文件指
28、針重新返回文件的開頭,此函數(shù)沒有返回值。,例10.5 有一個磁盤文件,第一次將它的內(nèi)容顯示在屏幕上,第二次把它復(fù)制到另一文件上。,解題思路: 因?yàn)樵诘谝淮巫x入完文件內(nèi)容后,位置指針已指到文件的末尾,如果再接著讀數(shù)據(jù),就遇到文件結(jié)束標(biāo)志,feof函數(shù)的值等于1(真),無法再讀數(shù)據(jù)。 必須在程序中用rewind函數(shù)使位置指針返回文件的開頭。,#include void main() FILE *fp1,*fp2; fp1=fopen(“file1.dat”,“r”); fp2=fopen(“file2.dat”,“w”); while(!feof(fp1) putchar(getc(fp1); p
29、utchar(10); rewind(fp1); while(!feof(fp1) putc(getc(fp1),fp2); fclose(fp1); fclose(fp2); ,(2) 用fseek函數(shù)移動位置指針 fseek函數(shù)的調(diào)用形式為: fseek(文件類型指針,位移量,起始點(diǎn)) 起始點(diǎn)0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”,fseed函數(shù)中的“起始點(diǎn)”的表示方法,位移量指以起始點(diǎn)為基點(diǎn),向前移動的字節(jié)數(shù)。位移量應(yīng)是long型數(shù)據(jù)(在數(shù)字的末尾加一個字母L)。 fseek函數(shù)一般用于二進(jìn)制文件。下面是fseek函數(shù)調(diào)用的幾個例子: fseek (fp,100L,0);
30、 fseek (fp,50L,1); fseek (fp,-10L,2);,(3) 用ftell函數(shù)測定位置指針的當(dāng)前位置 ftell函數(shù)的作用是得到流式文件中位置指針的當(dāng)前位置。 由于文件中的位置指針經(jīng)常移動,人們往往不容易知道其當(dāng)前位置,所以常用ftell函數(shù)得到當(dāng)前位置。用相對于文件開頭的位移量來表示。 如果ftell函數(shù)返回值為-1L,表示出錯。,i=ftell(fp); if(i=-1L) printf(“errorn”);,10.4.2 隨機(jī)讀寫文件,P294,例10.6 在磁盤文件stu.dat上已存有10個學(xué)生的數(shù)據(jù)(stu.dat是執(zhí)行例10.4程序時建立的數(shù)據(jù)文件)。今要求
31、將該文件中的第1、3、5、7、9個學(xué)生數(shù)據(jù)輸入計算機(jī),并在屏幕上顯示出來。,10.4.2 隨機(jī)讀寫文件,P294,解題思路: (1)按“二進(jìn)制只讀”的方式打開文件 (2)將文件位置指針指向文件的開頭,然后從磁盤文件讀入一個學(xué)生的信息,并把它顯示在屏幕上。 (3)再將文件位置指針指向文件中第3,5,7,9個學(xué)生的數(shù)據(jù)區(qū)的開頭,從磁盤文件讀入相應(yīng)學(xué)生的信息,并把它顯示在屏幕上。 (4)關(guān)閉文件。,#include #include struct st char name10; int num; int age; char addr15; stud10;,void main() int i; FILE *fp; if(fp=fopen(“stu_dat”,“rb”)=NULL) printf(can not open filen); exit(0); for(i=0;i10;i+=2) fseek(fp,i*sizeof(struct st),0); fread( ,10.5 提高部分,10.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年宣恩縣園投人力資源服務(wù)有限公司公開招聘湖北楚墨文化傳媒有限公司工作人員備考題庫及一套完整答案詳解
- 2026年國有企業(yè)金華市軌道交通控股集團(tuán)招聘備考題庫及完整答案詳解1套
- 2026年廈門市濱北小學(xué)補(bǔ)充非在編頂崗人員招聘備考題庫及完整答案詳解1套
- 2026年寧德市行管委公開招聘編外工作人員的備考題庫及完整答案詳解1套
- 2026年東盟經(jīng)濟(jì)技術(shù)開發(fā)區(qū)直屬國有企業(yè)招聘緊缺領(lǐng)導(dǎo)人員備考題庫帶答案詳解
- 2026年佛山市順德區(qū)勒流梁季彝紀(jì)念學(xué)校臨聘教師招聘備考題庫含答案詳解
- 2026年寧德市霞浦縣第三小學(xué)教師招聘備考題庫完整答案詳解
- 高血壓危象的心理支持
- 2026年橋梁智能評估系統(tǒng)的設(shè)計與開發(fā)
- 氧氣吸入與呼吸系統(tǒng)疾病護(hù)理
- 涉水工程影響國家基本水文測站影響評價分析報告
- 黃芪中藥課件
- 沈陽盛京軍勝農(nóng)業(yè)發(fā)展科技有限公司及所屬企業(yè)2025年面向社會招聘備考題庫帶答案詳解
- 入駐直播協(xié)議書
- 血液凈化中心(透析室)年度述職報告
- 酒吧消防安培訓(xùn)
- 養(yǎng)老院消防培訓(xùn)方案2025年課件
- Smaart7產(chǎn)品使用說明手冊
- 煙站述職報告(4篇)
- 蓋州市水務(wù)有限責(zé)任公司2025年工作總結(jié)暨2026年工作計劃
- 幼兒園老師面試高分技巧
評論
0/150
提交評論