1. 程式人生 > >關於檔案操作的函式

關於檔案操作的函式

1 int fseek(FILE *stream, long offset, int fromwhere);
第一個引數file指標
第二個引數移動的偏移量
第三個引數移動到哪裡
分別用3個巨集
SEEK_SET 既0 檔案開頭
SEEK_CUR 既1 檔案當前位置
SEEK_END 既2 檔案結尾
但不推薦用數字 最好用巨集

簡言之:
fseek(fp,100L,SEEK_SET);把fp指標移動到離檔案開頭100位元組處;
fseek(fp,100L,SEEK_CUR);把fp指標移動到離檔案當前位置100位元組處;
fseek(fp,100L,SEEK_END);把fp指標退回到離檔案結尾100位元組處。
此函式常用來計算流的長度:

int filesize = fseek( fp, 0, SEEK_END );

fseek( fp, 0, SEEK_SET );

2 fflush(stdin)是一個計算機專業術語,功能是清空輸入緩衝區,通常是為了確保不影響後面的資料讀取(例如在讀完一個字串後緊接著又要讀取一個字元,此時應該先執行fflush(stdin);)。

3

EOF是end of file的縮寫,表示"文字流"(stream)的結尾。這裡的"文字流",可以是檔案(file),也可以是標準輸入(stdin)。EOF不是特殊字元,而是一個定義在標頭檔案stdio.h的常量,一般等於-1。

#define EOF (-1)

在C語言中,或更精確地說成C標準函式庫中表示檔案結束符(end of file)。在while迴圈中以EOF作為檔案結束標誌,這種以EOF作為檔案結束標誌的檔案,必須是文字檔案。在文字檔案中,資料都是以字元的ASCII程式碼值的形式存放。我們知道,ASCII程式碼值的範圍是0~127,不可能出現-1,因此可以用EOF作為檔案結束標誌

4

feof 函式 檢查檔案流是否讀到檔案末尾。

當讀到檔案末尾時,返回非0值;其他情況返回0.

5

fscanf(檔案指標,資料格式,需要讀到的變數的地址);

#include <stdio.h>
#include <stdlib.h>

int main()
{
    
int num; char name[20]; double height; FILE *fp; fp = fopen("d:\\1.txt", "r+");//“r+” 以可讀寫方式開啟檔案,該檔案必須存在,d:\\1.txt表示d盤根目錄下的1.txt檔案 if (fp == NULL) { printf("Cannot open the file!\n"); exit(0); } printf("學號\t姓名\t身高\n"); while (!feof(fp)) { fscanf(fp, "%d%s%lf", &num, name, &height); printf("%d\t%s\t%g", num, name, height); } printf("\n"); fclose(fp);//要記得關閉檔案 return 0; }

txt檔案可以一行一行讀,也可以一行一行的寫進去。

fprintf(檔案流指標,資料格式,變數值);