C語言檔案典例程式分析

2021-09-16 19:58:39 字數 1750 閱讀 9463

}分析程式:

gets函式作用是從鍵盤上輸入乙個字串可以沒有空格,也可以有多個空格

同樣從鍵盤上的到字串,使用gets函式與常用的scanf函式得到的結果卻不完全相同

scanf()中通過%s輸入的字串不能含有空格

strlen()函式用來計算字串長度,即字串包含的有效字元個數(即不包含』\0』)

本程式的功能是:首先從鍵盤輸入一系列字元,(在新的一行按回車表示結束),接著把它們寫到文字檔案text.doc中。

程式分析:

問題1:執行結果是什麼?

問題2:若將fp=fopen(「temp」,「w+」)換成fp=fopen(「temp」,「w」)程式是否可以正常執行?若不能,為什麼?

**首先,**程式中用帶到fprintf函式,其格式為fprintf(檔案指標,「格式控制符」,輸出表列);其功能是把輸出列表中的指定的值以指定的格式寫入由fp所指定的檔案中去。

本程式fprintf(fp,"%3d",i); 的作用是把指定的變數i的值以%3d的格式寫入由fp所指定的檔案temp中。此時,temp檔案中的內容是 1 2 3 4 5 6 7 8 9(數與數之間空兩列)

接著,本程式出現fseek函式,其格式為fseek(檔案指標,位移量,起始點),其含義是移動位置指標,從起點開始,移動的位元組數由引數位移量決定,當用常量表示位移量時,要求必須加字尾l.!!!本程式中,fseek(fp,i3l,seek_set);起始點是seek_set(檔案首),移動位移量是i3l,i是迴圈變數,初值為5,第一次位置指標就從檔案首開始,移動15位元組,即位置指標指向temp檔案中資料5的後一列。

再接著,程式又用到fscanf函式,其形式是fscanf(檔案指標,「格式控制符」,輸入列表);其功能是從fp所指向的檔案中按指定格式讀取資料,送入到輸入列表中。本程式中fscanf(fp,"%3d",&n);的作用是,是從temp檔案中按%3d的格式讀取資料送給變數n。當前位置指標定位到資料5的後一列。此時,按%3d格式讀取資料6送到變數n,接著螢幕上顯示n的值,即為6,迴圈4次,即輸出 6 7 8 9.

**最後,**fopen(「temp」,「w+」);函式中檔案的使用方式是w+,其含義是以讀/寫的方式開啟或建立乙個文字檔案,允許讀或寫。若將fopen(「temp」,「w+」);換fopen(「temp」,「w」);程式將出錯。因為換之後只能想檔案中寫資料,不也能從檔案中讀資料,導致fscanf函式不能正確執行。

綜上分析:

問題1: 6 7 8 9

問題2:不能,因為w只能寫不能讀,會導致fscanf函式不能正確執行。

C語言典例分析

1 插入資料,保證原來的排序 int main int argc,char argv t,j,b scanf d t for i 0 i 7 i if t a i ti 1 j a b 1 t for i 0 i 10 i printf d a i 以前的陣列排完序,插入資料後,還按原來的順序。2 ...

ZigBee HA示例程式分析

zigbee協議棧中自帶的homeautomation例程,雖然也是操作燈泡,但是,是通過zcl來統一處理的,符合ha profile規範,互連互操作性較好。下面就簡要分析以下zcl的使用。在任務陣列中,多定義了zcl層。technorati 標籤 zigbee ha 示例程式 osal sampl...

C語言經典例程 經典c程式2例

前言 this article mainly introduces the classical routine of c language,2 cases of classical c program.friends who study c language can refer to it.程式1 ...