一、文件的打開和關閉
#include <stdio.h>
int main(){
FILE* fp;
fp = fopen("example.txt","w");
if(fp == NULL){
printf("打開文件失敗!");
return -1;
}
//文件操作
fclose(fp);
return 0;
}
在C中,對於文件的操作需要先打開文件,然後進行讀或寫等操作,最後再關閉文件。文件的打開使用fopen函數,如上面的代碼所示,其中第一個參數是文件名,可以是相對路徑或絕對路徑,第二個參數指定打開的模式,w表示寫模式,如果文件不存在則新建一個文件。如果打開文件失敗,fopen會返回NULL,需要進行檢查。最後使用fclose函數關閉文件,參數是之前打開文件時返回的FILE類型的指針。
二、文件的讀寫
1. 寫文件
#include <stdio.h>
int main(){
FILE* fp;
fp = fopen("example.txt","w");
if(fp == NULL){
printf("打開文件失敗!");
return -1;
}
fputs("Hello World!",fp);
fclose(fp);
return 0;
}
在打開文件之後,可以使用fputs函數將數據寫入文件。fputs函數的第一個參數是要寫入的字符串,第二個參數是之前打開文件時返回的FILE類型的指針。這裡我們寫入了一個簡單的字符串”Hello World!”到文件中。
2. 讀文件
#include <stdio.h>
int main(){
FILE* fp;
fp = fopen("example.txt","r");
if(fp == NULL){
printf("打開文件失敗!");
return -1;
}
char buf[1024];
fgets(buf,1024,fp);
fclose(fp);
printf("%s",buf);
return 0;
}
使用fgets函數可以從文件中讀取數據,第一個參數是一個字符數組,第二個參數是最大讀取的字節數,第三個參數是之前打開文件時返回的FILE類型的指針。在這裡,我們將讀取到的字符串打印到終端上。
三、文件的指針操作
1. 游標的位置
#include <stdio.h>
int main(){
FILE* fp;
fp = fopen("example.txt","r");
if(fp == NULL){
printf("打開文件失敗!");
return -1;
}
fseek(fp,0,SEEK_END);
long size = ftell(fp);
printf("文件大小為%ld字節",size);
fclose(fp);
return 0;
}
在使用文本文件的讀寫操作時,文件游標是很重要的一個概念。fseek函數可以改變文件游標的指向,第一個參數是文件指針,第二個參數是移動的偏移量,第三個參數指定了是從文件頭、文件尾、還是文件當前位置開始移動。在上面的代碼中,我們將文件指針移到文件結尾,然後使用ftell函數來獲取文件大小。
2. 文件的讀寫位置
#include <stdio.h>
int main(){
FILE* fp;
fp = fopen("example.txt","r+");
if(fp == NULL){
printf("打開文件失敗!");
return -1;
}
char buf[1024];
fgets(buf,1024,fp);
fseek(fp,0,SEEK_SET);
fputs("Hello World!",fp);
fclose(fp);
return 0;
}
在打開文件時使用r+模式可以實現文件的讀寫操作。在讀取完相應的數據後,我們可以使用fseek函數來改變文件游標的位置,這裡我們將文件游標移動到文件頭,然後使用fputs函數來向文件中寫入數據。
原創文章,作者:XKIQL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/372164.html