C語言 檔案操作解析詳解及執行個體代碼

來源:互聯網
上載者:User
C語言檔案操作解析

在檔案操作中除了開啟操作以及讀寫操作,還有幾種比較常見的操作。下面介紹一下這些操作中涉及到的函數。

一.移動位置指標的函數

rewind函數和fseek函數,這兩個函數的原型是:

void rewind(FILE *fp); 將位置指標移動到檔案首

int fseek(FILE *fp,long int offset,int origin); 將位置指標移動到距離origin的offset位元組數的位置

其中對於fseek函數中的參數,origin為起始點,offset為距離origin的位移位元組數

origin的值有三個:SEEK_SET(0)—>檔案首,SEEK_CUR(1)—>當前位置,SEEK_END(2)—>檔案尾。

注意:1)若檔案是以追加方式開啟,則當進行寫操作時,這兩個函數是不起作用的,無論將位置指標移動哪個位置,始終將添加的資料追加到檔案末尾。

二.其他常用函數

1.ftell函數

long int ftell(FILE *fp);

計算當前位置指標距檔案首的位元組數,若出錯,則返回-1L。

利用ftell函數可以計算出檔案的大小。

2.feof函數

int feof(FILE *fp);

檢測當前位置指標是否到達檔案末尾,若到達檔案末尾,則返回一個非零值,否則返回0。

3.ferror函數

int ferror(FILE *fp);

檢測檔案操作過程中是否出錯,若出錯,則返回一個非零值,否則返回0

4.remove函數

int remove(const char *filename);

刪除檔案,若刪除成功,則返回0,否則返回非零值

5.rename函數

int rename(const char *oldname,const char *newname);

將檔案重新命名,重新命名成功則返回0,否則返回非零值。

6.freopen函數

FILE* freopen(const char *filename,const char *mode,FILE *stream);

實現重新導向輸入輸出。此函數在測試資料時用得比較多。

7.fclose函數

int fclose(FILE *stream);

關閉一個流,若成功,則返回0,否則返回-1.注意每次對檔案操作完之後需關閉流,否則可能會造成資料丟失。

測試程式:

#include<stdio.h>#include<stdlib.h>  int main(void){  freopen("input.txt","r",stdin);  freopen("output.txt","w+",stdout);  int i;  int a[10];  for(i=0;i<10;i++)  {    scanf("%d",&a[i]);  }  for(i=0;i<10;i++)  {    printf("%d\n",a[i]);  }  return 0;}

假設工程目錄下已經存在input.txt,檔案中的資料為1 2 -1 3 4 5 7 8 9 10,則運行之後,不需要從控制台輸入資料,程式直接從input.txt中讀取資料,然後將結果輸出到output.txt中,不直接向控制台輸出結果。

感謝閱讀,希望能協助到大家,更多相關文章請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.