C 語言檔案操作

2021-06-20 01:54:50 字數 4427 閱讀 5612

c以來都好幾年了,今天突然發現

c語言的檔案操作不會寫了,今天晚上睡不著,熬夜把檔案操作在複習一遍,重新大概總結一下:

1、檔案的開啟(

fopen

()函式)

fopen

函式來實現開啟檔案:

fopen()

函式呼叫方式通常為:

file *fp;

fp=fopen(

檔名,使用檔案方式);

例如:fp=fopen(「al

」,」r

」)al

為檔名,「

r」代表

read

,即讀入

fp=fopen(「al

」,」r

」)代表三個資訊:

1、需要開啟的檔名,

2、使用檔案的方式(「讀」還是「寫「等);

3、讓那乙個指標變數指向被開啟的檔案(

fp)。

使用檔案方式表:

檔案使用方式 含義

「r」唯讀

為輸入開啟乙個資料夾 「

w」只寫

為輸出開啟乙個資料夾 「

a」追加

向檔案尾新增資料 「

rb」唯讀

為輸入開啟乙個二進位制檔案 「

wb」只寫

為輸出開啟乙個二進位制檔案 「

ab」追加

向二進位制檔案尾新增資料 「

r+」讀寫

為讀寫開啟乙個文字檔案 「

w+」讀寫

為讀寫建立乙個新的文字檔案 「

a+」讀寫

為讀寫開啟乙個文字檔案 「

rb+」讀寫

為讀寫開啟乙個二進位制檔案 「

wb」讀寫

為讀寫建立乙個二進位制檔案 「

ab+」讀寫

為讀寫開啟乙個二進位制檔案

檔案關閉

fclose()函式

呼叫一般方式為:

fclose

(檔案指標)

如:fclose(fp

);

2、fputc

函式和fgetc函式

fputc

函式把乙個字元寫道磁碟檔案上去,其一般呼叫形式為:

fputc(ch

,fp);

其中ch是主要輸出字元,他可以是乙個字元常量,也可以是乙個字元變數。

fp是檔案指標變數。

fputc

(ch,fp

)函式的作用是將字元(

ch的值)輸出到

fp所指向的檔案中去。

fputc

函式也帶回乙個值:如果輸出成功,則返回值就是輸出的字元;如果輸出失敗,則返回乙個

eof(即

-1)。。

eof是在

stdio.h

檔案定義的符號常量,值為

-1.

此前我們學習過

putchar(c

)函式,其實

putchar

是從fputc

中派生出來的。

putchar(c

)實在stdio.h

檔案中用於處理命令

#define

定義巨集:

#define putchar(c)  fputc(c,stdout)

作用是將

c值輸出到終端。

fgetc

函式:從指定檔案讀入乙個字元,該檔案必須是以讀或讀寫方式開啟的。

其呼叫方式為:

ch=fgetc(fp);

如果在執行

fgetc

函式讀字元時遇到檔案結束符,函式返回乙個結束標誌

eof(

即-1)。

例如:

從乙個磁碟檔案順序讀入字元在螢幕上顯示出來,可以用:

ch=fgetc(fp);

while(ch!=eof)

讀二進位制檔案時

ansi c

允許-1

出現所以用

eof便不能處理檔案結束這個問題。

ansi c

提供了乙個

feof

函式來判斷檔案是否真的結束。

feof(fp)

用來測試

fp所指向的檔案當前狀態是否「檔案結束

」.如果是檔案結束,函式

feof(fp)

返回值為

1(真)

;否則為

0(假)。

例如想讀乙個二進位制檔案:

while (! feof(fp))

fputc

和fgetc

函式使用舉例:

從鍵盤輸入一些字元,逐個把他們送到磁碟上去,直到輸入乙個「

#」為止。

#include

#include

void main()

ch=getchar();

ch=getchar();

while(ch!='#')

putchar(10);   //

換行符

fclose(fp); }

運**況如下:

file1.c         

(輸入磁碟檔名)

computer and c #     (

輸入乙個字串)

computer and c   (

輸出乙個字串)

檔名有鍵盤輸入,付給字元陣列

filename

。fopen

函式中的第乙個引數「檔名」可以直接寫成字串常量形式(如

file。c

),也可以用字元陣列名,

執行時,從鍵盤輸入磁碟檔名「

file1.c

」,然後輸入要寫入該磁碟檔案的字元「

computer and c" ,"#

」是表示輸入結束,程式將「

computer and c

」寫到以

"file1.c"

命名的磁碟檔案中,同時在螢幕顯示這些字元,以便核對。

另乙個例子:將乙個磁碟檔案中的資訊複製到另乙個磁碟檔案中:

#include

#include

void main()

if((out=fopen(outfile,"w"))==null)

while(!feof(in))

fclose(in);

fclose(out); }

運**況如下:

enter the infile name:

file1.c                          

(輸入原有磁碟檔名)

enter the outfile name:

file2.c                           

(輸入新複製的檔名)

3、fread

函式和fwrite函式

用getc

和putc

函式可以用來讀寫檔案的乙個字元。但是常常要求一次讀入一組資料(例如,乙個實數或乙個結構體便令的值)

,ansi c

標準提出設定兩個函式(

fread

和fwrite

),用來讀寫乙個資料塊。他們一般呼叫形式為:

fread (buffer,size,cout,fp);

fwrite( buffer, size, cout , fp);

buffer :

是指乙個指標,對

fread

來說,他是讀入資料的存放位址。對

fwrite

來說,是要輸出的位址

size

:要讀寫的位元組數。

count

:要進行讀寫多少個

size

位元組的資料項。

fp :

檔案型指標;

例如從stu_list

中讀出資料,然後在螢幕上輸出。

#include

#define size 4

struct student_type

stud[size];

void main()

fclose(fp); }

4、fprintf

函式和fscanf函式

fprintf

函式,fscanf

函式與printf

函式和scanf

函式作用相仿,都是格式化讀寫函式。只有一點不同:

fprintf

和fscanf

函式的讀寫物件不是終端而是磁碟檔案。他們的一般呼叫方式為:

fprintf

(檔案指標,格式字串,輸出列表);

fscanf

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

例如:fprintf

(fp, 「%d,%6.2f」,  i ,t);

c語言檔案操作

rt null ch fgetc fp while ch eof fclose fp 本 例程式的功能是從檔案中逐個讀取字元,在螢幕上顯示。程式定義了檔案指標fp,以讀文字檔案方式開啟檔案 d jrzh example ex1 1.c 並使fp指向該檔案。如開啟檔案出錯,給出提示並退出程式。程式第1...

C語言檔案操作

1.首先要理解幾個概念 檔案 按一定規則儲存在磁碟上的資料集合。檔名 能唯一標識某個磁碟檔案的字串。形式 碟符 路徑 檔名.副檔名 二進位制檔案 資料以二進位制形式在儲存在磁碟上。裝置檔案 輸入 輸出裝置 標準輸入檔案 鍵盤 標準輸出檔案 標準錯誤輸出檔案 顯示器 檔案型指標 c語言是通過名為fil...

C語言檔案操作

1,兩種檔案訪問方式 輸入,輸出方式 順序訪問 直接訪問 2,資料的兩種存放形式 文字檔案 二進位制檔案 3.檔案指標 定義檔案型別指標變數的一般形式 file 指標變數名 例如 file fp1,fp2 4.開啟檔案 在使用檔案之前,需開啟檔案.在c裡使用fopen函式開啟檔案.格式為 fopen...