Linux C程式設計 3 使用C語言函式讀寫檔案

2021-06-17 15:01:58 字數 1418 閱讀 3148

一、逐個字元讀檔案

1.源**

#include int main()

printf("output data in test.txt\n");

for(i=0; i<5;i++)

else

}printf("\nget suceesful\n");

fclose(fp);

return 1;

}

test.txt檔案內容

hi,io

輸出內容為

output data in test.txt

hi,io

get suceesful

2.解釋

fgetc函式宣告為

int fgetc(file * stream);
引數stream為file結構體的指標,用於指向乙個檔案,使得該函式從指定的檔案中讀取乙個位元組。如果此函式呼叫成功,則返回讀到的位元組;如果出錯,則返回eof。eof在stdio.h中定義的值為-1。

函式fgetc()呼叫成功後,返回的是讀到的位元組,應該為unsigned char 型別,但fget()函式原型中返回值型別是int。原因在於函式呼叫出錯或讀到檔案末尾是會返回eof,即-1。在int型的返回值是0xffffffff。如果讀到位元組oxff,則unsigned char型轉換為int型是0x000000ff(即255),只有規定返回值是int型才能把這兩種情況區分開。如果規定返回值是unsigned char型,那麼當返回值是0xff時則無法區分到底是eor還是位元組oxff。(因為char c=255; int t=(int)c; t為-1)。

二、逐個字元寫檔案

1.源**

#include int main()

char arr[5]=;

for(i=0; i<5;i++)

}printf("\nputc suceesful\n");

fclose(fp);

return 1;

}

在當前上當下新建檔案testout.txt。執行此程式後,檔案內容為

linux

2.解釋

fputc函式宣告為

int fputc(int c, file * stream);
注意

剛開始學習linux c,為避免麻煩,最好登入使用者為root。

參考文獻

《linux c從入門到精通》

c語言程式設計(3)

上課前首先是對作業的複習鞏固,完成這些作業最重要的還是要勤於思考,有錯誤及時修改,並搞明白每個字元以及每一步的含義,我真正感到自己學的不夠紮實,或許是理解不透徹,因此不斷改錯並牢記這些易錯點顯得尤為重要。選擇結構與條件判斷 兩選擇語句 1 if語句,實現兩分支的選擇結構 2 switch語句,來實現...

Linux C 之檔案程式設計(3)

讀寫檔案通常是大量的資料 這種大量是相對於底層驅動的系統呼叫所實現的資料操作單位而言 這時,使用庫函式就可以大大減少系統呼叫的次數。這一結果又緣於緩衝區技術。在使用者空間和核心空間,對檔案操作都使用了緩衝區,例如用fwrite寫檔案,都是先將內容寫到使用者空間緩衝區,當使用者空間緩衝區滿或者寫操作結...

C語言程式設計練習25 sqrt log sin 函式

題目描述 小明的老師給小明布置了這樣一道作業題,乙個序列符合以下定義 現問你這個序列的第n項是多少?輸入輸入包含多組測試資料。每組輸入乙個整數n 0 n 1000000 當輸入 1時,輸入結束。輸出對於每組輸入,輸出第n項的值,結果請mod 1000000。樣例輸入 copy 0 1思路 題目已經給...