C語言檔案操作相關函式

2021-09-19 10:21:08 字數 3026 閱讀 5435

在實際程式執行中,我們往往需要從檔案中讀取資料,或者需要往檔案中寫入資料,那如何完成這些操作?我們就需要掌握一些檔案操作函式了。

檔名

乙個檔案要有乙個唯一的檔案標識,以便使用者識別和引用。檔名包含:檔案路徑+檔名主幹+檔案字尾

在電腦中乙個檔名為:

但在程式中,為了與一些轉移字元區分開,會這樣表示乙個檔名: d:/shdownload/lrc 即將「「換為」/".

檔案指標

每個被使用的檔案都在記憶體中開闢了乙個相應的檔案資訊區,用來存放檔案的相關資訊(如檔案的名字,檔案狀態及檔案當前的位置等)。這些資訊是儲存在乙個結構體變數中的。該結構體型別是在stdio.h中進行檔案型別申明的。(vs2008)中。

一般都是通過乙個file*的指標來維護這個file *結構的變數,這樣使用起來更加方便。

建立乙個file*的指標變數:

file * fp ; //檔案指標變數

通過檔案指標變數能夠找到與它關聯的檔案。

檔案的開啟和關閉

檔案在讀寫之前應該先開啟檔案,在使用結束後應該關閉檔案。使用fopen函式來開啟檔案,fclose來關閉檔案。

檔案的開啟與關閉

file* fopen( const char * filename, const char* mode );

int fclose (file* stream );

開啟方式也就是*mode包括很多種類,取一部分做以介紹

然後我們以"w"只寫模式開啟檔案,然後什麼都不做,再關閉檔案,看看有什麼變化。

程式執行視窗沒有任何變化,但我們開啟文字文件,就會發現檔案中內容被清空了,所以我們可以知道,當我們以w方式開啟檔案的時候,會清空檔案的原有內容,提醒我們在實際使用的時候一定要注意。

那以a方式開啟檔案呢?與剛才一樣,我們在文字中輸入fopen example的內容,然後執行以下操作:

#define _crt_secure_no_warnings

#include#include#include int main()

接下來執行結果會跟之前有什麼不同?

可以看出實現了追加的功能,沒有清空之前的內容。

檔案的順序讀寫功能

函式名適用於

字元輸入函式

fgetc

所有輸入流

字元輸出函式

fputc

所有輸出流

文字行輸入函式

fgets

所有輸入流

文字行輸出函式

fputs

所有輸出流

格式化輸入函式

fscanf

所有輸入流

格式化輸出函式

fprintf

所有輸出流

二進位制輸入

fread

檔案二進位制輸出

fwrite

檔案接下來看一下fprintf與sprintf函式的用法。

#define _crt_secure_no_warnings

#include#includeint main()

fprintf是往檔案中輸出內容。可以看出fprintf的用法與printf很相似,執行結果如下:

sprintf則是往乙個字元陣列中輸出乙個格式化字串。

#define _crt_secure_no_warnings

#include#includeint main() ;

sprintf(str, "%d", x);

printf("%s\n", str);

fclose(pf);

system("pause");

return 0;

}

執行結果:

我們可以看出,sprint將乙個整數2輸出到了str這個字元陣列中,最終列印出來了乙個2,但區別在於現在這個』2』已經從乙個整數變為了乙個字串。

所以我們要注意,在c語言中,如何將乙個整數轉換為字串?sprintf就是方法之一。

相對應的,我們也可以用sscanf函式將乙個字串轉換回整數,用法類似。

檔案的隨機讀寫

fseek根據檔案指標的位置和偏移量來定位檔案指標。

int fseek( file * stream, long int offset, int origin );

ftell返回檔案指標相對於起始位置的偏移量

long int ftell ( file * stream );

rewind讓檔案指標的位置回到檔案的起始位置

void rewind ( file * stream );

C語言檔案操作相關函式

緩衝檔案系統中,關鍵的概念是 檔案型別指標 簡稱 檔案指標 每個被使用的檔案都在記憶體中開闢了乙個相應的檔案資訊區,用來存放檔案的相關資訊 如檔案的名字,檔案狀態 及檔案當前的位置等 這些資訊是儲存在乙個結構體變數中的。該結構體型別是有系統宣告的,取名file.使用檔案操作函式前需建立乙個指標變數 ...

C語言檔案操作相關函式

一 什麼是檔案 在程式設計中,一般談的檔案有兩種 程式檔案,資料檔案。1.程式檔案 包括源程式檔案 字尾為.c 目標檔案 windows環境字尾為.obj 可執行程式 windows環境字尾 為.exe 2.資料檔案 檔案的內容不一定是程式,而是程式執行時讀寫的資料,比如程式執行需要從中讀取資料的檔...

C語言檔案操作相關

在程式設計師和磁碟之間有乙個檔案作業系統 適配層 在作業系統下只有兩種檔案 文字檔案 ascll檔案 二進位制檔案 記憶體儲存 檔案的三板斧 開啟 讀和寫 關閉。開啟函式fopen fopen 函式開啟由fname 檔名 指定的檔案,並返回乙個關聯該檔案的流.如果發生錯誤,fopen 返回null....