《c语言从入门到精通》看书笔记——第14章 文件
生活随笔
收集整理的這篇文章主要介紹了
《c语言从入门到精通》看书笔记——第14章 文件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、文件的基本操作
(1)文件指針
文件指針是指向文件有關(guān)信息的指針,這些信息包含文件名,狀態(tài),和當(dāng)前位置,他們保存在一個(gè)結(jié)構(gòu)體變量中。在使用文件時(shí)需要在內(nèi)存中為其分配空間,用以存放文件的基本信息。該文件是由系統(tǒng)定義的,C語(yǔ)言規(guī)定該類型為FILE型,聲明如下:
typedef struct
{
short level;
unsigned flags;
char fd;
unsigned char hold;
short bsize;
unsigned char *buffer;
unsigned ar *curp;
unsigned istemp;
short token;
}FILE;
在編寫(xiě)程序時(shí)可以直接定義上面的FILE類型來(lái)定義變量,但不必全部寫(xiě)出結(jié)構(gòu)中的內(nèi)容,只需要寫(xiě)成:
FILE *fp;
fp是一個(gè)指向FILE類型的指針變量。
(2)文件的打開(kāi)
fopen函數(shù)用以打開(kāi)一個(gè)文件,打開(kāi)文件的操作就是創(chuàng)建一個(gè)流。fopen函數(shù)原型在stdio.h中,調(diào)用形式如下:
FILE *fp;
? ? ? ? ? fp=fopen(文件名,使用文件方式);
fopen函數(shù)打開(kāi)文件成功,則返回一個(gè)有確定指向的FILE類型指針;若打開(kāi)失敗,則返回NULL。
(3)文件的關(guān)閉
fcose函數(shù)用以關(guān)閉文件,原型在stdio.h中,調(diào)用的一般形式為:
fclose(文件指針);
例如:fclose(fp);
fclose函數(shù)帶回一個(gè)返回值,當(dāng)正常完成關(guān)閉文件操作時(shí),fclose函數(shù)返回一個(gè)0,否則返回EOF。
2、文件的讀寫(xiě)
(1)fputc函數(shù)
ch=fputc(ch,fp);
該函數(shù)的作用是把一個(gè)字符寫(xiě)到磁盤(pán)文件(fp所指向的文件)中去。其中ch是要輸出的字符,它可以是字符常量也可以是字符變量。fp是文件指針變量。如果輸出成功,則返回值就是輸出的字符,否則返回EOF。
(2)fgetc函數(shù)
ch=fgetc(fp);
該函數(shù)的作用是從指定的文件(fp指向的文件)讀入一個(gè)字符賦給ch。需要注意的是,該文件必須是以讀或讀寫(xiě)的方式打開(kāi)。當(dāng)文件遇到文件結(jié)束符時(shí)將返回結(jié)束標(biāo)志EOF。
(3)fputs函數(shù)
fputs(字符串,文件指針)
該函數(shù)的作用是向指定的文件寫(xiě)入一個(gè)字符串,其中字符串可以使字符串常量,也可以是字符數(shù)組名、指針或變量。
(4)fgets函數(shù)
fgets(字符數(shù)組名,n,文件指針);
該函數(shù)的作用是從指定的文件中讀一個(gè)字符串到字符數(shù)組中。n表示所得到的字符串中字符的個(gè)數(shù)(包含“\0”)。
(5)fprintf函數(shù):讀磁盤(pán)文件
ch=fprintf(文件類型指針,格式字符串,輸出列表);
例如:fprintf(fp,"%d",i);
他的作用是將整型變量i的值以“%d”的格式輸出到fp指定的文件中。
(6)fscanf函數(shù):寫(xiě)入磁盤(pán)文件
fscanf(文件類型指針,格式字符串,輸入列表);
例如:fscanf(fp,"%d",&i);
他的作用是讀入fp所指向的文件中的i的值。
(7)fread和fwrite函數(shù):整塊讀寫(xiě)
fread(buffer,size,count,fp);
該函數(shù)的作用是從fp所指的文件黃總讀入count次,每次讀size字節(jié),如如的信息存入buffer地址中。
fwrite(buffer,size,count,fp);
該函數(shù)的作用是將buffer地址開(kāi)始的信息輸出count次,每次寫(xiě)size字節(jié)DOAfp指定的文件中。
3、文件的定位
(1)fseek函數(shù)
借助緩沖型I/O系統(tǒng)中的fseek函數(shù)可以完成隨機(jī)讀寫(xiě)操作
fseek(文件類型指針,位移量,起始點(diǎn));
該函數(shù)的作用是移動(dòng)文件內(nèi)部位置指針。其中,“文件類型指針”指向被移動(dòng)的文件;“位移量”表示移動(dòng)的字節(jié)數(shù),要求位移量是long型數(shù)據(jù),以便在文件長(zhǎng)度大于64kb時(shí)不會(huì)出錯(cuò)。“起始點(diǎn)”有三種。如下:
起始點(diǎn)
例如:fseek(fp,-20L,1);
(2)rewind函數(shù)
int rewind(文件類型指針)
該函數(shù)的作用是使位置指針重新返回文件的開(kāi)頭,該函數(shù)沒(méi)有返回值。
(3)ftell函數(shù)
long ftell(文件類型指針)
該函數(shù)的作用是得到流式文件中的當(dāng)前位置,用相對(duì)于文件開(kāi)頭的位移量來(lái)表示。當(dāng)返回值是-1L時(shí),表示出錯(cuò)。
| 起始點(diǎn) | 表示符號(hào) | 數(shù)字表示 |
| 文件首 | SEEK - SET | 0 |
| 文件當(dāng)前位置 | SEEK - CUR | 1 |
| 文件末尾 | SEEK - END | 2 |
總結(jié)
以上是生活随笔為你收集整理的《c语言从入门到精通》看书笔记——第14章 文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LintCode: Search A 2
- 下一篇: 《c语言从入门到精通》看书笔记——第15