真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【進(jìn)階C語(yǔ)言】文件操作-創(chuàng)新互聯(lián)

文章目錄
  • 一.文件
    • 1.文件的功能
    • 2.文件的分類
    • 3.文件路徑
      • 絕對(duì)路徑
      • 相對(duì)路徑
    • 4.文件信息區(qū)
    • 5.文件緩沖區(qū)
    • 6.流的概念
    • 7.輸入輸出
  • 二.文件函數(shù)
    • 1.打開(kāi)與關(guān)閉文件
      • 打開(kāi)文件——fopen
        • 返回類型
        • 參數(shù)
      • 關(guān)閉文件——fclose
        • 返回類型
        • 參數(shù)
    • 2. 順序讀寫(xiě)
      • 1.輸入輸出字符
          • 輸入字符函數(shù)——fgetc
          • 返回類型
          • 函數(shù)參數(shù)
          • 輸出字符函數(shù)——fputc
          • 返回類型
          • 函數(shù)參數(shù)
      • 2.輸入輸出字符串
          • 輸入字符函數(shù)——fgets
          • 返回類型
          • 函數(shù)參數(shù)
          • 輸出字符函數(shù)——fputs
          • 返回類型
          • 函數(shù)參數(shù)
      • 3.格式化輸入輸出
        • 格式化輸入——fscanf
          • 返回類型
          • 函數(shù)參數(shù)
        • 格式化輸出——fprintf
          • 返回類型
          • 函數(shù)參數(shù)
      • 4.二進(jìn)制輸入輸出
        • 二進(jìn)制輸入——fwrite
          • 返回類型
          • 函數(shù)參數(shù)
        • 二進(jìn)制輸入——fread
          • 返回類型
          • 函數(shù)參數(shù)
    • 3.隨機(jī)讀寫(xiě)
      • 1.fseek
        • 返回類型
        • 參數(shù)
      • 2.ftell
        • 返回類型
        • 函數(shù)參數(shù)
      • 3.rewind
        • 返回類型
        • 函數(shù)參數(shù)
    • 4.錯(cuò)誤函數(shù)
      • 1.ferror
        • 返回類型
        • 函數(shù)參數(shù)
      • 2.feof
        • 返回類型
        • 函數(shù)參數(shù)

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),北京網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:北京等地區(qū)。北京做網(wǎng)站價(jià)格咨詢:13518219792一.文件

定義:
?文件屬于文件的一種,與普通文件載體不同,文件是以硬盤(pán)為載體存儲(chǔ)在計(jì)算機(jī)上的信息集合。文件包括了文檔、圖片、視頻、程序組件等,每個(gè)類型的文件都有不同的作用或功用,例如一個(gè)程序通常由主程序、動(dòng)態(tài)庫(kù)、配置文件等組成,這些也是文件,起到支持程序運(yùn)行的作用。

文件包含三部分:
1.文件路徑
2.文件后綴
3.文件名

1.文件的功能

?在寫(xiě)程序中,比如說(shuō)我們寫(xiě)的通訊錄,在運(yùn)行結(jié)束時(shí),通訊錄的信息會(huì)被刪除,那有沒(méi)有方法來(lái)存儲(chǔ)我們所需要的數(shù)據(jù)信息呢?答案是肯定的。數(shù)據(jù)被保存在硬盤(pán)中,那這樣我們使數(shù)據(jù)具有了可持續(xù)化的屬性。這是其中的一種功能.

2.文件的分類

在這里插入圖片描述

終端:是我們最終要操作的對(duì)象。
比如說(shuō):使用printf和scanf函數(shù)時(shí),printf的終端為屏幕,scanf的終端為鍵盤(pán)

3.文件路徑 絕對(duì)路徑

定義:
?絕對(duì)路徑是指目錄下的絕對(duì)位置,直接到達(dá)目標(biāo)位置,通常是從盤(pán)符開(kāi)始的路徑。

比如說(shuō):D:\Program Files (x86)\Microsoft Visual Studio\2019這就是一個(gè)絕對(duì)路徑
從起始盤(pán)開(kāi)始到目標(biāo)文件結(jié)束

相對(duì)路徑

定義:
?相對(duì)路徑就是指由這個(gè)文件所在的路徑引起的跟其它文件(或文件夾)的路徑關(guān)系。使用相對(duì)路徑可以為我們帶來(lái)非常多的便利。

比如:D:\Program Files (x86)\Microsoft Visual Studio\2019
如果你的文件在D:\Program Files (x86)\Microsoft Visual Studio里面則要打開(kāi)2019
只需:2019
當(dāng)前路徑符號(hào):.
當(dāng)前路徑的上一路徑:…
以此類推:我們可以找到我們想要的文件

4.文件信息區(qū)

在這里插入圖片描述

將目標(biāo)文件的相關(guān)信息存放到結(jié)構(gòu)體變量中,這樣的變量我們稱之為文件信息區(qū)
文件信息區(qū)的定義在:stdio.h ?中。
文件信息區(qū)一般用指針進(jìn)行操作,這里的文件指針指的可不只是文件。

下面這是VS2013的文件信息區(qū)的結(jié)構(gòu)變量的命名

struct _iobuf {char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;

那指針就是FILE*(通常為文件操作函數(shù)的返回值)

5.文件緩沖區(qū)

在這里插入圖片描述

在程序結(jié)束時(shí),(VS2019)會(huì)主動(dòng)刷新緩沖區(qū),fclose函數(shù)也能主動(dòng)刷新緩沖區(qū),在沒(méi)有刷新緩沖區(qū)時(shí),數(shù)據(jù)是不會(huì)主動(dòng)放在文件中的,所以通常在我們編輯文件時(shí),我們通常會(huì)按下CTRL+S保存數(shù)據(jù)到文件中,這時(shí)我們就會(huì)刷新文件緩沖區(qū),把數(shù)據(jù)放在文件中。

6.流的概念

?計(jì)算機(jī)中的流其實(shí)是一種信息的轉(zhuǎn)換。是一種高度抽象的概念。
在這里插入圖片描述

我們只需將所需的對(duì)目標(biāo)對(duì)象根據(jù)分類寫(xiě)到流里面去,但是數(shù)據(jù)怎么到目標(biāo),這是怎么實(shí)現(xiàn)的我們并不需要了解,我們只需要知道如何使用即可,這大大簡(jiǎn)化了我們學(xué)習(xí)編程的門(mén)檻。
在打開(kāi)程序的時(shí)候,默認(rèn)打開(kāi)三個(gè)流:
1.stdin(標(biāo)準(zhǔn)輸入流)——鍵盤(pán)
2.stdout(標(biāo)準(zhǔn)輸出流)——屏幕
3.stderr(標(biāo)準(zhǔn)錯(cuò)誤流)

7.輸入輸出

在這里插入圖片描述

二.文件函數(shù) 1.打開(kāi)與關(guān)閉文件 打開(kāi)文件——fopen 返回類型

FILE*的指針

打開(kāi)失敗時(shí):返回一個(gè)空指針。
打開(kāi)成功指向文件的起始地址。
一般來(lái)說(shuō)要進(jìn)行對(duì)返回值的檢查

參數(shù)

1.文件路徑——const char * filename
2.模式(以哪種形式打開(kāi))——const char*mode

打開(kāi)的模式:
在這里插入圖片描述
在這里插入圖片描述

關(guān)閉文件——fclose 返回類型

int

打開(kāi)成功:返回0
打開(kāi)失敗:返回EOF(-1)

參數(shù)

文件指針——FILE * stream

1.此函數(shù)會(huì)刷新緩沖區(qū),相當(dāng)于保存的作用
2.如果嚴(yán)謹(jǐn)?shù)脑拰?duì)返回值也需要進(jìn)行檢查,不過(guò)通常都不用

2. 順序讀寫(xiě) 1.輸入輸出字符

?1. 輸入輸出字符函數(shù)適用于所有的流
?2.在讀取字符之后,讀取的內(nèi)容的指針自動(dòng)向后偏移一個(gè)字符的位置,讀取下一個(gè)字節(jié)

輸入字符函數(shù)——fgetc 返回類型

int

如果讀取成功:將字符整形提升為整形返回
失?。悍祷谽OF

函數(shù)參數(shù)

文件指針——FILE * stream

輸出字符函數(shù)——fputc 返回類型

int

如果讀取成功:將字符整形提升為整形返回
失?。悍祷谽OF

函數(shù)參數(shù)

文件指針——FILE * stream

2.輸入輸出字符串

?1. 輸入輸出字符函數(shù)適用于所有的流

輸入字符函數(shù)——fgets

讀取時(shí)會(huì)為\0留一個(gè)字節(jié)的位置,所以想要讀取的字符數(shù)與實(shí)際要讀的少一

返回類型

char*

讀取成功:返回str——與要存入字符數(shù)組的首元素的地址保持一致(不管讀取多少個(gè)字節(jié))。
讀取失?。悍祷乜罩羔?/p>

函數(shù)參數(shù)

1.要讀取的字符串的首地址——char*str
2.要讀取的字符的個(gè)數(shù)
3.文件指針——FILE * stream

輸出字符函數(shù)——fputs

功能:將文件中的信息寫(xiě)到程序中
字符串的\0是不會(huì)被放在文件里面的
換行不會(huì)自動(dòng)換行需要自己寫(xiě)

返回類型

int

如果讀取成功:返回非負(fù)值
失?。悍祷谽OF

函數(shù)參數(shù)

1.要讀取的字符串的首元素的地址——const char *str
2.目標(biāo)文件指針——FILE * stream

3.格式化輸入輸出 格式化輸入——fscanf

(空白符:指空格符、制表符、回車(chē)符)就停止的輸入函數(shù)
一般來(lái)說(shuō):使用gets函數(shù)來(lái)彌補(bǔ)這一缺陷

返回類型

int

成功:返回字符個(gè)數(shù)
比如:int ret = fscanf(pf, "%s “, arr);這里的ret 是 1跟字符串”"里面的字符個(gè)數(shù)有關(guān)
失?。悍祷谽OF

函數(shù)參數(shù)

1.要讀取的文件指針:FILE*stream
2.格式化字符串
3.輸入列表

格式化輸出——fprintf

功能:將數(shù)據(jù)轉(zhuǎn)換成字符串存到文件中

返回類型

int

成功:返回讀取字符個(gè)數(shù)
比如:int ret = fscanf(pf, "%s “, arr);這里的ret 是 1跟字符串”"里面的字符個(gè)數(shù)有關(guān)
失敗:返回負(fù)數(shù)

函數(shù)參數(shù)

1.要寫(xiě)入的文件指針:FILE*stream
2.格式化字符串
3.輸入列表

4.二進(jìn)制輸入輸出

只能適用于文件流中

二進(jìn)制輸入——fwrite

功能:將數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制寫(xiě)入文件中

返回類型

size_t

如果返回成功:返回的是成功寫(xiě)入的元素的個(gè)數(shù)
失?。悍祷?
一般來(lái)說(shuō):字符的二進(jìn)制數(shù)據(jù)和文本數(shù)據(jù)是相同的,所以在文檔中可以看懂字符,但是其它的數(shù)據(jù)可就不一定。

函數(shù)參數(shù)

1.寫(xiě)入文件的數(shù)據(jù)的地址——const void * ptr
2.寫(xiě)入數(shù)據(jù)的大小——size_t size
3.要寫(xiě)入的數(shù)據(jù)的個(gè)數(shù)——size_t count
4.寫(xiě)入的文件指針——FILE * stream

二進(jìn)制輸入——fread

功能:將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成相應(yīng)格式到內(nèi)存中。

返回類型

size_t

如果返回成功:返回的是成功寫(xiě)入的元素的個(gè)數(shù)
失敗:返回0
一般來(lái)說(shuō):字符的二進(jìn)制數(shù)據(jù)和文本數(shù)據(jù)是相同的,所以在文檔中可以看懂字符,但是其它的數(shù)據(jù)可就不一定。

函數(shù)參數(shù)

1.讀取文件的數(shù)據(jù)的地址——const void * ptr
2.讀取數(shù)據(jù)的大小——size_t size
3.要讀取的數(shù)據(jù)的個(gè)數(shù)——size_t count
4.讀取的文件指針——FILE * stream

3.隨機(jī)讀寫(xiě) 1.fseek

功能:根據(jù)文件指針的位置和偏移量來(lái)定位文件指針

返回類型

int

成功返回0
失敗返回非0值

參數(shù)

1.要讀取的文件指針——FILE * stream
2.偏移的大小(左負(fù)右正)——long int offset
3.偏移的起點(diǎn)——int origin

偏移的起點(diǎn):
1.“ SEEK_CUR ”:表示文件指針當(dāng)前位置;
2.“ SEEK_END ”:表示文件末尾的位置;
3. “ SEEK_SET”:表示文件開(kāi)始位置。

2.ftell

功能:返回文件指針相對(duì)于起始位置的偏移量

返回類型

long int

返回成功:當(dāng)前位置的偏移量
返回失?。?1L這是long int的-1

函數(shù)參數(shù)

文件指針——FILE * stream

3.rewind

功能:讓文件指針的位置回到文件的起始位置

返回類型

void

函數(shù)參數(shù)

文件指針——FILE * stream

4.錯(cuò)誤函數(shù) 1.ferror

功能:檢查是否在讀寫(xiě)過(guò)程中出錯(cuò)

返回類型

int

如果有錯(cuò)返回0
如果沒(méi)錯(cuò)返回非0值

函數(shù)參數(shù)

文件指針——FILE * stream

2.feof

功能:檢查是否因讀取到文件結(jié)束標(biāo)志而出錯(cuò)

返回類型

int

如果有錯(cuò)返回0
如果沒(méi)錯(cuò)返回非0值

函數(shù)參數(shù)

文件指針——FILE * stream

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


名稱欄目:【進(jìn)階C語(yǔ)言】文件操作-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/jhdjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部