欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言 文件操作解析詳解及實例代碼

 更新時間:2016年11月27日 16:14:13   作者:海 子  
這篇文章主要介紹了C語言 文件操作解析詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下

C語言文件操作解析

        在文件操作中除了打開操作以及讀寫操作,還有幾種比較常見的操作。下面介紹一下這些操作中涉及到的函數(shù)。

一.移動位置指針的函數(shù)

   rewind函數(shù)和fseek函數(shù),這兩個函數(shù)的原型是:

   void rewind(FILE *fp);     將位置指針移動到文件首

  int fseek(FILE *fp,long int offset,int origin);   將位置指針移動到距離origin的offset字節(jié)數(shù)的位置

  其中對于fseek函數(shù)中的參數(shù),origin為起始點,offset為距離origin的偏移字節(jié)數(shù)

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

注意:1)若文件是以追加方式打開,則當進行寫操作時,這兩個函數(shù)是不起作用的,無論將位置指針移動哪個位置,始終將添加的數(shù)據(jù)追加到文件末尾。

二.其他常用函數(shù)

1.ftell函數(shù)

long int ftell(FILE *fp);

計算當前位置指針距文件首的字節(jié)數(shù),若出錯,則返回-1L。

利用ftell函數(shù)可以計算出文件的大小。

2.feof函數(shù)

int feof(FILE *fp);

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

3.ferror函數(shù)

int ferror(FILE *fp);

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

4.remove函數(shù)

int remove(const char *filename);

刪除文件,若刪除成功,則返回0,否則返回非零值

5.rename函數(shù)

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

將文件重命名,重命名成功則返回0,否則返回非零值。

6.freopen函數(shù)

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

實現(xiàn)重定向輸入輸出。此函數(shù)在測試數(shù)據(jù)時用得比較多。

7.fclose函數(shù)

int fclose(FILE *stream);

關(guān)閉一個流,若成功,則返回0,否則返回-1.注意每次對文件操作完之后需關(guān)閉流,否則可能會造成數(shù)據(jù)丟失。

測試程序:

#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;
}

假設(shè)工程目錄下已經(jīng)存在input.txt,文件中的數(shù)據(jù)為1 2 -1 3 4 5 7 8 9 10,則運行之后,不需要從控制臺輸入數(shù)據(jù),程序直接從input.txt中讀取數(shù)據(jù),然后將結(jié)果輸出到output.txt中,不直接向控制臺輸出結(jié)果。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Qt實現(xiàn)網(wǎng)絡(luò)聊天室的示例代碼

    Qt實現(xiàn)網(wǎng)絡(luò)聊天室的示例代碼

    本文主要介紹了Qt實現(xiàn)網(wǎng)絡(luò)聊天室,實現(xiàn)一個在線聊天室, 使用tcp對客戶端和服務(wù)器端進行通訊。具有一定的參考價值,具有一定的參考價值,
    2021-06-06
  • C語言編程題楊氏矩陣算法快速上手示例詳解

    C語言編程題楊氏矩陣算法快速上手示例詳解

    這篇文章主要為大家介紹了C語言編程題楊氏矩陣算法快速上手的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2021-10-10
  • C++中返回指向函數(shù)的指針示例

    C++中返回指向函數(shù)的指針示例

    int (*ff(int)) (int *,int);表示:ff(int)是一個函數(shù),帶有一個int型的形參,該函數(shù)返回int (*) (int *,int),它是一個指向函數(shù)的指針,所指向的函數(shù)返回int型并帶有兩個分別是Int*和int型的形參
    2013-09-09
  • C++代碼實現(xiàn)逆波蘭式

    C++代碼實現(xiàn)逆波蘭式

    這篇文章主要為大家詳細介紹了C++代碼實現(xiàn)逆波蘭式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解C++編程中的輸入輸相關(guān)的類和對象

    詳解C++編程中的輸入輸相關(guān)的類和對象

    這篇文章主要介紹了詳解C++編程中的輸入輸相關(guān)的類和對象,是C++入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C++實現(xiàn)LeetCode(148.鏈表排序)

    C++實現(xiàn)LeetCode(148.鏈表排序)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(148.鏈表排序),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Qt自定義Widget實現(xiàn)互斥效果詳解

    Qt自定義Widget實現(xiàn)互斥效果詳解

    在使用Qt時,可能會遇到這種問題:多個控件互斥,類似于QRadiButton控件,但又不是單純的QRadioButton控件,互斥的可能是一個窗口,也可能是幾個按鈕,等等多種情況。本文將介紹利用Qt自定義Widget實現(xiàn)的互斥效果,需要的可以參考一下
    2022-01-01
  • 關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解

    關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解

    今天小編就為大家分享一篇關(guān)于關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言GetStdHandle函數(shù)使用方法

    C語言GetStdHandle函數(shù)使用方法

    這篇文章介紹了C語言GetStdHandle函數(shù)的使用方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • C++學習之IO流(輸入輸出流)詳解

    C++學習之IO流(輸入輸出流)詳解

    流是一種抽象概念,它代表了數(shù)據(jù)的無結(jié)構(gòu)化傳遞。而用來進行輸入輸出操作的流就稱為IO流。這篇文章主要為大家介紹了C++中IO流的使用詳解,需要的朋友可以參考一下
    2021-12-12

最新評論