《c語言從入門到精通》看書筆記 第14章 檔案

2021-07-07 08:27:46 字數 2161 閱讀 3739

1、檔案的基本操作

(1)檔案指標

檔案指標是指向檔案有關資訊的指標,這些資訊包含檔名,狀態,和當前位置,他們儲存在乙個結構體變數中。在使用檔案時需要在記憶體中為其分配空間,用以存放檔案的基本資訊。該檔案是由系統定義的,c語言規定該型別為file型,宣告如下:

typedef struct

file;

在編寫程式時可以直接定義上面的file型別來定義變數,但不必全部寫出結構中的內容,只需要寫成:

file *fp;

fp是乙個指向file型別的指標變數。

(2)檔案的開啟

fopen函式用以開啟乙個檔案,開啟檔案的操作就是建立乙個流。fopen函式原型在stdio.h中,呼叫形式如下:

file *fp;

fp=fopen(檔名,使用檔案方式);

fopen函式開啟檔案成功,則返回乙個有確定指向的file型別指標;若開啟失敗,則返回null。

(3)檔案的關閉

fcose函式用以關閉檔案,原型在stdio.h中,呼叫的一般形式為:

fclose(檔案指標);

例如:fclose(fp);

fclose函式帶回乙個返回值,當正常完成關閉檔案操作時,fclose函式返回乙個0,否則返回eof。

2、檔案的讀寫

(1)fputc函式

ch=fputc(ch,fp);

該函式的作用是把乙個字元寫到磁碟檔案(fp所指向的檔案)中去。其中ch是要輸出的字元,它可以是字元常量也可以是字元變數。fp是檔案指標變數。如果輸出成功,則返回值就是輸出的字元,否則返回eof。

(2)fgetc函式

ch=fgetc(fp);

該函式的作用是從指定的檔案(fp指向的檔案)讀入乙個字元賦給ch。需要注意的是,該檔案必須是以讀或讀寫的方式開啟。當檔案遇到檔案結束符時將返回結束標誌eof。

(3)fputs函式

fputs(字串,檔案指標)

該函式的作用是向指定的檔案

寫入乙個字串,其中字串可以使字串常量,也可以是字元陣列名、指標或變數。

(4)fgets函式

fgets(字元陣列名,n,檔案指標);

該函式的作用是從指定的檔案中

讀乙個字串到字元陣列中。n表示所得到的字串中字元的個數(包含「\0」)。

(5)fprintf函式:讀磁碟檔案

ch=fprintf(檔案型別指標,格式字串,輸出列表);

例如:fprintf(fp,"%d",i);

他的作用是將整型變數i的值以「%d」的格式輸出到fp指定的檔案中。

(6)fscanf函式:寫入磁碟檔案

fscanf(檔案型別指標,格式字串,輸入列表);

例如:fscanf(fp,"%d",&i);

他的作用是讀入fp所指向的檔案中的i的值。

(7)fread和fwrite函式:整塊讀寫

fread(buffer,size,count,fp);

該函式的作用是從fp所指的檔案黃總讀入count次,每次讀size位元組,如如的資訊存入buffer位址中。

fwrite(buffer,size,count,fp);

該函式的作用是將buffer位址開始的資訊輸出count次,每次寫size位元組doafp指定的檔案中。

3、檔案的定位

(1)fseek函式

借助緩衝型i/o系統中的fseek函式可以完成隨機讀寫操作

fseek(檔案型別指標,位移量,起始點);

該函式的作用是移動檔案內部位置指標。其中,「檔案型別指標」指向被移動的檔案;「位移量」表示移動的位元組數,要求位移量是long型資料,以便在檔案長度大於64kb時不會出錯。「起始點」有三種。如下:

起始點起始點

表示符號

數字表示

檔案首seek - set

0檔案當前位置

seek - cur

1檔案末尾

seek - end2

例如:fseek(fp,-20l,1);

(2)rewind函式

int rewind(檔案型別指標)

該函式的作用是使位置指標重新返回檔案的開頭,該函式沒有返回值。

(3)ftell函式

long ftell(檔案型別指標)

該函式的作用是得到流式檔案中的當前位置,用相對於檔案開頭的位移量來表示。當返回值是-1l時,表示出錯。

《c語言從入門到精通》看書筆記 第9章 函式

1 函式的定義 函式頭 函式體,一般形式為 返回值型別 函式名 引數列表 2 函式的宣告 返回值型別 函式名 引數列表 3 返回語句 1 返回語句的作用 1 利用返回語句能立即從所在的函式中退出,即返回到呼叫的程式中去 2 返回語句能返回值。將函式值賦給呼叫的表示式中,當然有些函式沒用返回值。2 函...

《c語言從入門到精通》看書筆記 第10章 指標

1 位址與指標 變數的位址稱為該變數的 指標 如果乙個變數專門來存放另乙個變數的位址,它就是指標變數。在c語言中專門用來存放記憶體單元位址的變數型別即指標型別。2 指標變數 1 指標變數的一般形式 型別說明 變數名 其中 表示該變數是乙個指標變數,變數名即為定義的指標變數名,型別說明便是本指標變數所...

《c語言從入門到精通》看書筆記 第13章 預處理

1 巨集定義 巨集定義是預處理命令的一種,它提供了一種可以替換源 中字串的機制。巨集定義指令 define用來定義乙個識別符號和乙個字串,一這個識別符號來代表這個字串,在程式中每次遇到該識別符號時就用所定義的字串替換它。巨集定義的作用相當於給指定的字串起乙個別名。1 不帶引數的巨集定義一般形式如下 ...