本次我們主要討論以下內容:
程式檔案
包括源程式檔案(字尾為.c),目標檔案(windows環境字尾為.obj),可執行程式(windows環境字尾為.exe)。
資料檔案
如圖所示:
如我們可以這樣定義乙個file*的指標變數:
file* pf;//檔案指標變數
file*
fopen
(const
char
*filename,
const
char
* mode)
;int
fclose
(file* stream)
;
fopen的第二個引數可以有如下形式:
測試**:
/* fopen fclose example */
#include
int main (
)return0;
}
int fseek ( file * stream, long int offset, int origin );
例子:
/* fseek example */
#include
int main (
)
long int ftell ( file * stream );
例子:
/* ftell example : getting size of a file */
#include
int main (
)return0;
}
void rewind ( file * stream );
例子:
/* rewind example */
#include
int main (
)
正確判斷檔案結束判斷的例子:
#include
#include
intmain
(void
)//fgetc 當讀取失敗的時候或者遇到檔案結束的時候,都會返回eof
while
((c =
fgetc
(fp))!=
eof)
//判斷是什麼原因結束的if(
ferror
(fp)
)puts
("i/o error when reading");
elseif(
feof
(fp)
)puts
("end of file reached successfully");
fclose
(fp)
;return
0;}
#include
#define size 5
intmain
(void);
double b =
0.0;
size_t ret_code =0;
file *fp =
fopen
("test.bin"
,"wb");
// 必須用二進位制模式
fwrite
(a,sizeof
(*a)
, size, fp)
;// 寫 double 的陣列
fclose
(fp)
; fp =
fopen
("test.bin"
,"rb");
// 讀 double 的陣列
while
((ret_code =
fread
(&b,
sizeof
(double),
1, fp)
)>=1)
if(feof
(fp)
)printf
("error reading test.bin: unexpected end of file\n");
elseif(
ferror
(fp)
)fclose
(fp)
; fp =
null
;return0;
}
檔案緩衝區
前段我把鍵盤丟了,今天我重新買了乙個鍵盤,新鍵盤拿到手後,舊鍵盤又被我找到了!我真是 現在呢,我兩個鍵盤它也沒多大用,於是我決定把新鍵盤送給我在北京的好盆友foreb。我現在有兩個送鍵盤的方案 1.我親自護送鍵盤,打車,買機票到北京,然後跑到他家,他在家的話,直接給他,不在家我再等等他,等他回來了給...
檔案操作 清空緩衝區
在進行輸入輸出操作或者檔案讀寫時,由於涉及到緩衝區的使用,可能遇到一些問題。例如,scanf 函式用於從stdin輸入資訊,在從標準輸入緩衝區讀取資訊時,往往以 n 作為結束輸入的標誌,但是換行符 n 仍然殘留在緩衝區中,下次再次從標準輸入讀取資訊時,殘留的換行符 n 會被當做有效資訊讀取,即,上一...
linux檔案緩衝區
一 緩衝區機制 根據應用程式對檔案的訪問方式,即是否存在緩衝區,對檔案的訪問可以分為帶緩衝區的操作和非緩衝區的檔案操作 緩衝區檔案操作 高階檔案系統,將在使用者空間中自動為正在使用的檔案開闢記憶體緩衝區。非緩衝區檔案系統 低階檔案系統,如果需要,只能由使用者在自己的程式中為每個檔案設定緩衝區。如果採...