<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                所謂“文件”是指一組相關數據的有序集合。這個數據集有一個名稱 叫做文件名。文件通常是駐留在外部介質上的,在使用的時候才調 入內存中。 就文件的分類,有很多種分類方式,在這里我們看一下文件編碼方式。 根據文件的編碼方式,文件可以分為ASCII碼文件和二進制文件。 ASCII文件也稱為文本文件,這種文件在磁盤中存放時每個字符對應一個 字節,用于存放對應的ASCII碼。例如,數字5678的存儲形式為: ASCII碼: 00110101 00110110 00110111 00111000 十進制碼: 5 6 7 8 共占用4個字節。ASCII碼文件可在屏幕上按照字符顯示。 二進制文件是按照二進制的編碼方式來存放文件的。例如,數字5678的 存儲形式為00010110 00101110,只占兩個字節,二進制文件雖然可以在屏幕上顯示,但是其內容無法讀懂。C語言處理這些文件的時候,并不區分類型,都看成是字符流,按字節進行處理。 文件指針在C語言中用一個指針變量指向一個文件,這個指針稱為文件指針。通過文件指針就可對他所指的文件進行各種操作。定義文件指針的一般形式為”FILE “指針變量標識符。其中FILE應為大寫,他實際上是由系統定義的一個結構,該結構中含有文件名,文件狀態和文件當前位置等信息。在編寫源程序的時候,不必關心FILE結構的細節。例如”FILE fp”表示fp是指向FILE結構的指針變量,通過fp即可找到存放某個文件信息的結構變量,然后按照結構變量提供的信息找到該文件,實施對文件的操作。 在C語言中,文件操作都是由庫函數來完成的。文件操作主要有打開,讀寫和關閉等。 **1:文件打開函數fopen** fopen函數用來打開一個文件,其調用的一般形式為: 文件指針名 = fopen(文件名,使用文件方式) 其中,“文件指針名”必須被說明為FILE類型的指針變量,“文件名”是被打開文件的文件名。 “使用文件方式”是指文件的類型和操作要求。“文件名”是字符串常量或字符串數組。 例如: FILE fp; fp = fopen(“file.a”,”r”); //他的意思是在當前目錄下打開文件file.a,只允許進行“讀”操作,并且使得fp指向該文件 使用文件的方式一共有12種。 ![這里寫圖片描述](https://box.kancloud.cn/2016-05-24_5743c0acf2cc8.jpg "") 對于文件使用方式有以下幾點說明: 文件使用方式由r,w,a,t,b,+共6個字符組合成,各個字符的含義是:r(read)讀,w(write)寫, a(append)追加,t(text)文本文件,可省略不寫;b(binary)二進制文件;”+”讀和寫 用r打開一個文件的時候,該文件必須已經存在,且只能從該文件讀出 用w打開的文件只能向文件中寫入,若打開的文件不存在,則以指定的文件名建立 該文件,如打開的文件已經存在,則將該文件刪去,從新建立一個文件 若要向一個已經存在的文件追加新的信息,只能用a方式打開文件。但此時該文件必須是 存在的,否則將會出錯。 在打開一個文件的時候,如果出錯,fopen將會返回一個空指針值NULL。在程序中可以 用這一信息來判別是否完成打開文件的工作,并做相應的處理。舉個例子: if((fp=fopen(“file.a”,”rb”)) == NULL) { printf(“\nerror no open file.a!”); getch(); exit(1); } **2:關閉文件** 調用的一般形式是: fclose(文件指針); 正常完成關閉文件操作的時候,fclose函數返回值為0,如返回非零值則表示有錯誤發生 **3:文件讀寫函數** 在C語言中提供了很多文件讀寫的函數。字符讀寫函數fgetc和fputc;字符串讀寫函數fgets和 fputs;數據塊讀寫函數fread和fwrite;格式化讀寫函數fscanf和fprintf;這些函數 都包含在stdio.h頭文件中。 **(1):讀字符函數fgetc** fgetc函數的功能是從指定的文件中讀取一個字符,函數的調用形式為: 字符變量 = fgetc(文件指針); 注意文件指針和文件內部的位置指針是不同的。文件指針是指向整個文件的, 需要在程序中定義說明,只要不重新賦值,文件指針的值是不變的。文件內部的 位置指針用以指示文件內部的當前讀寫位置,每讀寫一次,該指針均向后移動, 他不需要在程序中定義說明,而是由系統自動設置的。 **(2):寫字符函數fputc** fputc函數的功能是把一個字符寫入指定的文件中,函數的調用形式為: fputc(字符,文件指針); fputc函數有一個返回值,如果寫入成功,則返回寫入的字符,否則返回EOF **(3):字符串讀寫函數fgets和fputs** 讀字符串函數fgets函數的功能是從指定的文件中讀一個字符串到字符數組中, 函數的調用形式為: fgets(字符數組名,n,文件指針); 其中n是一個正整數,表示從文件中讀出的字符串不超過n-1個字符,在讀入的最后 一個字符加上串結束標識’\0’。對fgets函數有兩點說明:在讀出n-1個字符之前,如果 遇到了換行符或者是EOF,則結束操作。fgets函數也有返回值,其返回值是字符數組的首 地址。 寫字符串函數調用形式: fputs(字符串,文件指針); **(4):塊數據讀寫函數fread和fwrite** 調用形式: fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); buffer是一個指針,在fread中,他表示存放輸入數據的首地址。在fwrite中, 他表示存放輸出數據的首地址。size表示數據塊的字節數,count表示要讀寫的 數據塊的塊數。 **(5)格式化讀寫函數fcanf和fprintf** 調用形式: fcanf(文件指針,格式字符串,輸入表列); fprintf(文件指針,格式字符串,輸出表列); 下面就是我們這個實例的要求: ~~~ 編寫統計文件的字符數的程序,主要學習文件的概念 和文件操作等內容。 ~~~ 下面是我的代碼實現: ~~~ #include <stdio.h> #include <stdlib.h> /** * 編寫統計文件的字符數的程序,主要學習文件的概念 * 和文件操作等內容。 */ int main() { /**保存字符個數 **/ int count = 0; /**保存文件名 **/ char fname[80]; /**文件指針 **/ FILE *fp; printf("Please enter the file name:"); scanf("%s",fname); if((fp = fopen(fname,"r")) == NULL){ printf("Open file failed!!\n"); exit(1); } count = 0; while(fgetc(fp) != EOF) count++; fclose(fp); printf("There are %d characters in file %s.\n",count,fname); return 0; } ~~~ 下面是我的測試用例(名稱為test.txt): ~~~ cnuidocncn cwncviow wedcvnwicvmnw dcvnwidcvn cvwiovm wvcewoivm w evcovw vcmweiocvmw mvciomvw nvi] v wevmovjov wvjkvnivpvm wvciwmvw 'nvoikvv nvwvmje ewevvvv wvwkvnpowiehf]ewnveiowv ~~~ 好了,最后看一下我的運行過程: ![這里寫圖片描述](https://box.kancloud.cn/2016-05-24_5743c0ad280c5.jpg "") 除此之外,我們還可以對文件進行隨機讀寫。在C中提供了一些文件定位的函數,我們常用的有兩個:rewind和fseek。 這兩個函數的調用形式分別為: rewind(文件指針)。 他的功能是把文件內部的位置指針移到文件首。 fseek(文件指針,位移量,起始點); 將文件內部位置指針移動到我們想要的位置。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看