在實際程式執行中,我們往往需要從檔案中讀取資料,或者需要往檔案中寫入資料,那如何完成這些操作?我們就需要掌握一些檔案操作函式了。
檔名
乙個檔案要有乙個唯一的檔案標識,以便使用者識別和引用。檔名包含:檔案路徑+檔名主幹+檔案字尾
在電腦中乙個檔名為:
但在程式中,為了與一些轉移字元區分開,會這樣表示乙個檔名: 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....