C文件操作詳解

一、文件的打開和關閉

#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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XKIQL的頭像XKIQL
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相關推薦

發表回復

登錄後才能評論