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)若文件是以追加方式打開,則當進行寫操作時,這兩個函數是不起作用的',無論將位置指針移動哪個位置,始終將添加的數據追加到文件末尾。
二.其他常用函數
l函數
long int ftell(FILE *fp);
計算當前位置指針距文件首的字節數,若出錯,則返回-1L。
利用ftell函數可以計算出文件的大小。
函數
int feof(FILE *fp);
檢測當前位置指針是否到達文件末尾,若到達文件末尾,則返回一個非零值,否則返回0。
or函數
int ferror(FILE *fp);
檢測文件操作過程中是否出錯,若出錯,則返回一個非零值,否則返回0
ve函數
int remove(const char *filename);
刪除文件,若刪除成功,則返回0,否則返回非零值
me函數
int rename(const char *oldname,const char *newname);
將文件重命名,重命名成功則返回0,否則返回非零值。
pen函數
FILE* freopen(const char *filename,const char *mode,FILE *stream);
實現重定向輸入輸出。此函數在測試數據時用得比較多。
se函數
int fclose(FILE *stream);
關閉一個流,若成功,則返回0,否則返回-1.注意每次對文件操作完之後需關閉流,否則可能會造成數據丟失。
測試程序:
#include
#include
int main(void)
{
freopen("","r",stdin);
freopen("","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",a[i]);
}
return 0;
}
假設工程目錄下已經存在,文件中的數據爲1 2 -1 3 4 5 7 8 9 10,則運行之後,不需要從控制檯輸入數據,程序直接從中讀取數據,然後將結果輸出到中,不直接向控制檯輸出結果。
相關文章
-
C語言文件操作解析詳解及實例代碼
一、指導思想以學習貫徹黨的十七大精神爲動力,高舉中國特色社會主義偉大旗幟,全面落實科學發展觀。以鄧小平理論、“三個代表”重要思想和“構築社會主義和諧社會”主要精神爲指導,以保持共產黨員先進性和開展“雙爭”活 -
C語言合併排序及實例代碼詳解
歸併排序也稱合併排序,其算法思想是將待排序序列分爲兩部分,依次對分得的兩個部分再次使用歸併排序,之後再對其進行合併。本文是本站小編搜索整理的關於C語言合併排序及實例代碼詳解,供參考學習,希望對大家有所幫助!想了解 -
C語言奇偶排序算法詳解及實例代碼
歸併排序(Merge sort)是創建在歸併操作上的一種有效的排序算法。該算法是採用分治法的一個非常典型的應用。本文特意爲大家收集整理了C語言奇偶排序算法詳解及實例代碼,希望大家喜歡!一個歸併排序的.例子:對一個隨機點的 -
C語言合併排序及實例代碼講解
歸併排序也稱合併排序,其算法思想是將待排序序列分爲兩部分,依次對分得的兩個部分再次使用歸併排序,之後再對其進行合併。下面是小編爲大家整理的C語言合併排序及實例代碼講解,歡迎參考~僅從算法思想上了解歸併排序會覺得 -
C語言指針與二維數組資料詳解(附示例代碼)
二維數組在概念上是二維的,有行和列,但在內存中所有的數組元素都是連續排列的,它們之間沒有“縫隙”。本文是本站小編搜索整理的關於C語言指針與二維數組資料詳解(附示例代碼),供參考學習,感興趣的小夥伴們可以參考一下!想 -
C語言合併排序及實例代碼
歸併排序也稱合併排序,其算法思想是將待排序序列分爲兩部分,依次對分得的兩個部分再次使用歸併排序,之後再對其進行合併。下面是小編分享的C語言合併排序及實例代碼,一起來看一下吧。合併排序僅從算法思想上了解歸併排序 -
桶排序算法的理解及C語言版代碼示例
桶排序非常快,但是同時也非常耗空間,基本上是最耗空間的一種排序算法。下面小編爲大家整理了桶排序算法的理解及C語言版代碼示例,希望能幫到大家!理解:桶排序是計數排序的變種,把計數排序中相鄰的m個"小桶"放到一個"大桶" -
C語言選擇排序算法及實例代碼
選擇排序是排序算法的一種,下面小編爲大家整理了C語言選擇排序算法及實例代碼,希望能幫到大家!基本思想及舉例說明選擇排序(從小到大)的基本思想是,首先,選出最小的數,放在第一個位置;然後,選出第二小的數,放在第二個位置;以此類 -
C語言插入排序算法及實例代碼
插入排序是排序算法的一種,下面小編爲大家整理了C 語言插入排序算法及實例代碼,希望能幫到大家!這裏以從小到大排序爲例進行講解。基本思想及舉例說明插入排序的基本思想是,將元素逐個添加到已經排序好的數組中去,同時要求 -
C語言以數據塊的形式讀寫文件實例代碼
大家知道C語言怎麼以數據塊的形式讀寫文件嗎?下面小編爲大家整理了C語言以數據塊的形式讀寫文件實例代碼,希望能幫到大家!fgets() 有侷限性,每次最多隻能從文件中讀取一行內容,因爲 fgets 遇到換行符就結束讀取。如果希望