最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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ù)據追加到文件末尾。

二.其他常用函數(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ù)據時用得比較多。

7.fclose函數(shù)

int fclose(FILE *stream);

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

測試程序:

#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,文件中的數(shù)據為1 2 -1 3 4 5 7 8 9 10,則運行之后,不需要從控制臺輸入數(shù)據,程序直接從input.txt中讀取數(shù)據,然后將結果輸出到output.txt中,不直接向控制臺輸出結果。

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

相關文章

  • 談談vector的特殊性之為什么它不是STL容器

    談談vector的特殊性之為什么它不是STL容器

    這篇文章主要給大家介紹了關于vector的特殊性之為什么它不是STL容器的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • 使用代碼驗證linux子進程與父進程的關系

    使用代碼驗證linux子進程與父進程的關系

    Linux下父進程可以使用fork 函數(shù)創(chuàng)建子進程,但是當父進程先退出后,子進程會不會也退出呢?通過下面這個小實驗,我們能夠很好的看出來
    2014-02-02
  • C語言實現(xiàn)二叉樹的搜索及相關算法示例

    C語言實現(xiàn)二叉樹的搜索及相關算法示例

    這篇文章主要介紹了C語言實現(xiàn)二叉樹的搜索及相關算法,結合具體實例形式分析了基于C語言創(chuàng)建、遍歷、搜索等相關算法與實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • C++17 使用 std::string_view避免字符串拷貝優(yōu)化程序性能

    C++17 使用 std::string_view避免字符串拷貝優(yōu)化程序性能

    這篇文章主要介紹了C++17 使用 std::string_view避免字符串拷貝優(yōu)化程序性能,幫助大家提高程序運行速度,感興趣的朋友可以了解下
    2020-10-10
  • C++實現(xiàn)簡單學生管理系統(tǒng)

    C++實現(xiàn)簡單學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Qt+OpenCV利用幀差法實現(xiàn)車輛識別

    Qt+OpenCV利用幀差法實現(xiàn)車輛識別

    所謂幀差法也就是對連續(xù)圖像幀做差分運算,其結果與定義好的閾值比較,若大于閾值則為運動目標值為1,否則值為0?。本文將利用幀差法實現(xiàn)車輛識別,感興趣的可以了解一下
    2022-08-08
  • 詳解QML?調用?C++?中的內容

    詳解QML?調用?C++?中的內容

    這篇文章主要介紹了QML?怎么調用?C++?中的內容,這里主要是總結一下,怎么在 QML 文件中引用 C ++ 文件里定義的內容,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • C語言基于EasyX庫實現(xiàn)有圖形界面鐘表

    C語言基于EasyX庫實現(xiàn)有圖形界面鐘表

    這篇文章主要介紹了C語言基于EasyX庫實現(xiàn)有圖形界面鐘表,直線轉動端點計算,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C實現(xiàn)的非阻塞方式命令行端口掃描器源碼

    C實現(xiàn)的非阻塞方式命令行端口掃描器源碼

    這篇文章主要介紹了C實現(xiàn)的非阻塞方式命令行端口掃描器源碼,對于大家理解C端口掃描器有很大幫主,需要的朋友可以參考下
    2014-07-07
  • C語言使用DP動態(tài)規(guī)劃思想解最大K乘積與乘積最大問題

    C語言使用DP動態(tài)規(guī)劃思想解最大K乘積與乘積最大問題

    Dynamic Programming動態(tài)規(guī)劃方法采用最優(yōu)原則來建立用于計算最優(yōu)解的遞歸式,并且考察每個最優(yōu)決策序列中是否包含一個最優(yōu)子序列,這里我們就來展示C語言使用DP動態(tài)規(guī)劃思想解最大K乘積與乘積最大問題
    2016-06-06

最新評論

德保县| 内江市| 邵东县| 柳河县| 西丰县| 漳平市| 福鼎市| 昂仁县| 庄河市| 东港市| 同心县| 广德县| 革吉县| 陆丰市| 仪陇县| 汶川县| 临漳县| 阳泉市| 盱眙县| 德州市| 文化| 雅安市| 宁武县| 濉溪县| 咸丰县| 冷水江市| 棋牌| 大埔区| 习水县| 呈贡县| 马尔康县| 开江县| 醴陵市| 天镇县| 南充市| 泾川县| 通许县| 仁布县| 盘山县| 大丰市| 高淳县|