關於檔案操作的函式
阿新 • • 發佈:2019-01-09
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 );
第一個引數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(檔案流指標,資料格式,變數值);