首頁 > 後端開發 > C#.Net教程 > C語言 檔案操作解析詳解及實例程式碼

C語言 檔案操作解析詳解及實例程式碼

黄舟
發布: 2016-12-14 17:25:14
原創
1347 人瀏覽過

C語言檔案操作解析

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

一.移動位置指標的函數

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

   void rewind(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函數

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中,不直接向控制台輸出結果。

感謝閱讀,希望能幫助大家,更多相關文章請關注PHP中文網(www.php.cn)! 

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板