C檔案操作及其檔案緩衝區

2021-10-04 22:38:59 字數 2492 閱讀 2892

本次我們主要討論以下內容:

程式檔案

包括源程式檔案(字尾為.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檔案緩衝區

一 緩衝區機制 根據應用程式對檔案的訪問方式,即是否存在緩衝區,對檔案的訪問可以分為帶緩衝區的操作和非緩衝區的檔案操作 緩衝區檔案操作 高階檔案系統,將在使用者空間中自動為正在使用的檔案開闢記憶體緩衝區。非緩衝區檔案系統 低階檔案系統,如果需要,只能由使用者在自己的程式中為每個檔案設定緩衝區。如果採...