在C語言中,檔案操作都是由庫函式來完成的。
要讀取一個txt檔案,首先要使用檔案開啟函式fopen()。
fopen函式用來開啟一個檔案,其呼叫的一般形式為: 檔案指標名=fopen(檔名,使用檔案方式) 其中,“檔案指標名”必須是被說明為FILE 型別的指標變數,“檔名”是被開啟檔案的檔名。 “使用檔案方式”是指檔案的型別和操作要求。“檔名”是字串常量或字串陣列。
其次,使用檔案讀寫函式讀取檔案。
在C語言中提供了多種檔案讀寫的函式:
·字元讀寫函式 :fgetc和fputc
·字串讀寫函式:fgets和fputs
·資料塊讀寫函式:freed和fwrite
·格式化讀寫函式:fscanf和fprinf
最後,在檔案讀取結束要使用檔案關閉函式fclose()關閉檔案。
下面以格式化讀寫函式fscanf和fprintf為例,實現對檔案A.txt(各項資訊以空格分割)的讀取,並將它的資訊以新的格式(用製表符分割各項資訊)寫入B.txt,實現對A.txt的處理。
C語言源程式如下所示:
#include
typedef struct student{
char name[32];
int no;
char sex[16];
float score;
} stu;
int main(int argc, char* argv[])
{
//開啟檔案
FILE * r=fopen("A.txt","r");
assert(r!=NULL);
FILE * w=fopen("B.txt","w");
assert(w!=NULL);
//讀寫檔案
stu a[128];
int i=0;
while(fscanf(r,"%s%d%s%f",a[i].name,&a[i].no,a[i].sex,&a[i].score)!=EOF)
printf("%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到顯示器螢幕
fprintf(w,"%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到檔案B.txt
i++;
}
//關閉檔案
fclose(r);
fclose(w);
system("pause");
return 0;
在C語言中,檔案操作都是由庫函式來完成的。
要讀取一個txt檔案,首先要使用檔案開啟函式fopen()。
fopen函式用來開啟一個檔案,其呼叫的一般形式為: 檔案指標名=fopen(檔名,使用檔案方式) 其中,“檔案指標名”必須是被說明為FILE 型別的指標變數,“檔名”是被開啟檔案的檔名。 “使用檔案方式”是指檔案的型別和操作要求。“檔名”是字串常量或字串陣列。
其次,使用檔案讀寫函式讀取檔案。
在C語言中提供了多種檔案讀寫的函式:
·字元讀寫函式 :fgetc和fputc
·字串讀寫函式:fgets和fputs
·資料塊讀寫函式:freed和fwrite
·格式化讀寫函式:fscanf和fprinf
最後,在檔案讀取結束要使用檔案關閉函式fclose()關閉檔案。
下面以格式化讀寫函式fscanf和fprintf為例,實現對檔案A.txt(各項資訊以空格分割)的讀取,並將它的資訊以新的格式(用製表符分割各項資訊)寫入B.txt,實現對A.txt的處理。
C語言源程式如下所示:
#include
#include
#include
typedef struct student{
char name[32];
int no;
char sex[16];
float score;
} stu;
int main(int argc, char* argv[])
{
//開啟檔案
FILE * r=fopen("A.txt","r");
assert(r!=NULL);
FILE * w=fopen("B.txt","w");
assert(w!=NULL);
//讀寫檔案
stu a[128];
int i=0;
while(fscanf(r,"%s%d%s%f",a[i].name,&a[i].no,a[i].sex,&a[i].score)!=EOF)
{
printf("%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到顯示器螢幕
fprintf(w,"%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到檔案B.txt
i++;
}
//關閉檔案
fclose(r);
fclose(w);
system("pause");
return 0;
}