1. 程式人生 > >c復習過程隨筆十

c復習過程隨筆十

如果 系統 向人 終端 表示 類指針 保存 ror 長度

文件的輸入輸出:

  操作系統把各種設備都統一作為文件來處理,c的數據文件是由一串的字符(字節)組成,不考慮行的界限,兩行數據間不會自動加分隔符,對文件的存取是以字符(字節)為單位的。輸入輸出數據流的開始和結束僅受流程控制而不受物理符號的控制。

  文件名:文件路徑 文件名主幹 和文件後綴

  文件分類:ASCII文件和二進制文件,數據可以用ASCII形式存儲也可以用二進制形式存儲

  文件緩沖區:從內存向磁盤輸出數據必須先送到內存中的緩存區,裝滿緩存區後才一起送到磁盤去。從磁盤讀入時,一次從磁盤將一批數據輸入到內存緩沖區,然後再從緩沖區逐個的將數據送到程序數據區。

  文件類型指針:每個被使用的文件都在內存中開辟一個相應的文件信息區,用來存放文件的有關信息(保存在結構體變量中,由系統命名FILE)。

打開文件就是為文件建立相應的信息區(用來存放有關文件的信息)和文件緩沖區(用來暫時存放輸入輸出的數據),關閉文件就是撤銷文件信息區和文件緩沖區

fopen打開文件: fopen(文件名,使用文件方式) 如fopen(“a1”,“r”)表示打開文件名為a1的文件,使用文件方式為讀入,fopen的返回值是指向a1文件的指針(a1文件信息區的起始地址)

  fclose關閉文件:fclose(文件指針)成功關閉,返回0,否則返回EOF(-1);

  feof函數:其功能是檢測流上的文件結束符,如果文件結束,則返回非0值,否則返回0,文件結束符只能被clearerr()清除。

順序讀寫數據文件

:對文件讀寫數據的順序和數據在文件中的物理順序是一致的

向文件讀寫字符:fgetc(fp) 從fp指向的文件讀入一個字符(成功返回所讀字符,失敗返回EOF)

        fputc(ch,fp)把字符ch寫到文件指針變量fp所指向的文件中(輸出成功,返回輸出字符,輸出失敗,返回EOF)

向文件讀寫一個字符串:

  fgets(str,n,fp);從fp所指向的文件中讀入一個長度為n-1的字符串,並在最後加一個‘\0’字符,然後把這n個字符放到字符組str中

fputs(str,fp)把str所指向的字符串寫到文件指針變量fp所指向的文件中,輸出成功

用格式化的方式讀寫文件(讀寫對象不是終端而是文件,printf讀寫對象是終端):

fprintf(文件指針,格式字符串,輸出表列);

fscanf(文件指針,格式字符串,輸入表列);轉換費時

用二進制方式向文件讀寫一組數據

  fread(buffer,size,count,fp);從文件中讀一個數據塊

  fwrite(buffer,size,count,fp);(buffer是一個地址存放從文件讀入的數據的存儲區的地址,size要寫的字節數,count,要讀寫多少數據項,fp則是FILE類指針)

執行成功返回count的值

隨機讀寫數據文件:可以對任何位置上的數據進行訪問

文件位置標記及其定位

1.文件位置標記

  用來指示接下來要讀寫的下一個字符的位置

  2.文件位置標記的定位

  強制使文件位置標記指向人們指定的位置:(1)用rewind函數是文件位置標記指向文件開頭,無返回值(2)fseek函數改變文件位置標記fseek(文件類型指針,位移量,起始點)(起始點用0、1、2代替,0代表文件開始位置,1為當前位置,2為文件末尾位置,位移量應是long型數據,如50L)(3)用ftell函數測定文件位置標記的當前位置,如果函數出錯,則返回-1L

文件讀寫的出錯檢測:

ferror函數(ferror(fp),如果返回值為0(表示未出錯,返回非零值表示出錯))

clearerr函數(clearerr(fp)使文件錯誤標誌和文件結束標誌(即ferror(fp))置0)

c復習過程隨筆十