C語言文件操作解析詳解及實例代碼
在文件操作中除了打開操作以及讀寫操作,還有幾種比較常見的操作。下面介紹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<stdio.h>
#include<stdlib.h>
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("%dn",a[i]);
}
return 0;
}
假設工程目錄下已經存在,文件中的數據爲1 2 -1 3 4 5 7 8 9 10,則運行之後,不需要從控制檯輸入數據,程序直接從中讀取數據,然後將結果輸出到中,不直接向控制檯輸出結果。
相關文章
-
C語言中文件操作詳解及實例代碼
在文件操作中除了打開操作以及讀寫操作,還有幾種比較常見的操作。以下是本站小編搜索整理的關於這些操作中涉及到的函數,,需要的朋友可以參考本文!想了解更多相關信息請持續關注我們應屆畢業生考試網! 一.移動位置指 -
C語言合併排序及實例代碼詳解
歸併排序也稱合併排序,其算法思想是將待排序序列分爲兩部分,依次對分得的兩個部分再次使用歸併排序,之後再對其進行合併。本文是本站小編搜索整理的關於C語言合併排序及實例代碼詳解,供參考學習,希望對大家有所幫助!想了解 -
C語言奇偶排序算法詳解及實例代碼
Once upon a time an Indian hunter built himself a house in the middle of a great forest, far away from all his tribe; for his heart was gentle and kind, and he was weary of the treachery and cruel dee -
C語言合併排序及實例代碼講解
歸併排序也稱合併排序,其算法思想是將待排序序列分爲兩部分,依次對分得的兩個部分再次使用歸併排序,之後再對其進行合併。下面是小編爲大家整理的C語言合併排序及實例代碼講解,歡迎參考~僅從算法思想上了解歸併排序會覺得 -
C語言指針與二維數組資料詳解(附示例代碼)
二維數組在概念上是二維的,有行和列,但在內存中所有的數組元素都是連續排列的,它們之間沒有“縫隙”。本文是本站小編搜索整理的關於C語言指針與二維數組資料詳解(附示例代碼),供參考學習,感興趣的小夥伴們可以參考一下!想 -
桶排序算法的理解及C語言版代碼示例
桶排序非常快,但是同時也非常耗空間,基本上是最耗空間的一種排序算法。下面小編爲大家整理了桶排序算法的理解及C語言版代碼示例,希望能幫到大家!理解:桶排序是計數排序的變種,把計數排序中相鄰的m個"小桶"放到一個"大桶" -
詳解C語言實現牛頓迭代法解方程
在學習、工作或生活中,許多人都有過寫作文的經歷,對作文都不陌生吧,作文根據寫作時限的不同可以分爲限時作文和非限時作文。你知道作文怎樣才能寫的好嗎?下面是小編爲大家收集的三國演義的讀後感作文300字5篇,希望能夠幫助 -
C語言棧的表示與實現實例詳解分析
1.基本概念:C語言的棧是指限定僅在表尾進行插入和刪除操作的線性表。棧作爲C語言中一種常用的數據結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進後出的原則存儲數據,先進入的數據被壓入棧底,最後的` -
C語言合併排序及實例代碼
歸併排序也稱合併排序,其算法思想是將待排序序列分爲兩部分,依次對分得的兩個部分再次使用歸併排序,之後再對其進行合併。下面是小編分享的C語言合併排序及實例代碼,一起來看一下吧。合併排序僅從算法思想上了解歸併排序 -
C語言選擇排序算法及實例代碼
選擇排序是排序算法的一種,下面小編爲大家整理了C語言選擇排序算法及實例代碼,希望能幫到大家!基本思想及舉例說明選擇排序(從小到大)的基本思想是,首先,選出最小的數,放在第一個位置;然後,選出第二小的數,放在第二個位置;以此類