日本无码中文字幕片|日本精品在线观看无码视频|国产精品免费啪啪|Av无码一区二区|亚洲在线黄片免费观看|亚洲日韩中文字幕在线观看|熟女激情乱伦在线观看a黄片|成年人观看毛片网址|AV色色色色日韩性草|国产高清无码免费

C語言以數據塊的形式讀寫文件實例代碼

時間:2025-12-31 03:32:04 C語言

C語言以數據塊的形式讀寫文件實例代碼

  大家知道C語言怎么以數據塊的形式讀寫文件嗎?下面小編為大家整理了C語言以數據塊的形式讀寫文件實例代碼,希望能幫到大家!

  fgets() 有局限性,每次最多只能從文件中讀取一行內容,因為 fgets 遇到換行符就結束讀取。如果希望讀取多行內容,需要使用 fread 函數;相應地寫入函數為 fwrite。

  fread() 函數用來從指定文件中讀取塊數據。所謂塊數據,也就是若干個字節(jié)的數據,可以是一個字符,可以是一個字符串,可以是多行數據,并沒有什么限制。fread() 的原型為:

  size_t fread ( void *ptr, size_t size, size_t count, FILE *fp );

  fwrite() 函數用來向文件中寫入塊數據,它的原型為:

  size_t fwrite ( void * ptr, size_t size, size_t count, FILE *fp );

  對參數的說明:

  ptr 為內存區(qū)塊的指針,它可以是數組、變量、結構體等。fread() 中的 ptr 用來存放讀取到的數據,fwrite() 中的 ptr 用來存放要寫入的數據。

  size:表示每個數據塊的字節(jié)數。

  count:表示要讀寫的數據塊的塊數。

  fp:表示文件指針。

  理論上,每次讀寫 size*count 個字節(jié)的數據。

  size_t 是在 stddef.h 頭文件中使用 typedef 定義的數據類型,表示無符號整數,也即非負數,常用來表示數量。

  返回值:返回成功讀寫的塊數,也即 count。如果返回值小于 count:

  對于 fwrite() 來說,肯定發(fā)生了寫入錯誤,可以用 ferror() 函數檢測。

  對于 fread() 來說,可能讀到了文件末尾,可能發(fā)生了錯誤,可以用 ferror() 或 feof() 檢測。

  【示例】從鍵盤輸入一個數組,將數組寫入文件再讀取出來。

  #include#define N 5int main(){ /pic/pic/pic/pic/pic/pic/p>

  運行結果:

  23 409 500 100 222↙

  23 409 500 100 222

  fwrite()/fread() 函數直接操作字節(jié),建議使用二進制方式打開文件。請閱讀《C語言中文本文件與二進制文件的區(qū)別》了解更多。

  打開 D:demo.txt,發(fā)現文件內容根本無法閱讀。這是因為我們使用"rb+"方式打開文件,數據以二進制形式寫入文件,一般無法閱讀。

  數據寫入完畢后,位置指針在文件的末尾,要想讀取數據,必須將文件指針移動到文件開頭,這就是rewind(fp);的作用。更多關于rewind函數的內容請點擊:C語言rewind函數。

  文件的后綴不一定是 .txt,它可以是任意的,你可以自己命名,例如 demo.ddd、demo.doc、demo.diy 等。

  【示例】從鍵盤輸入兩個學生數據,寫入一個文件中,再讀出這兩個學生的數據顯示在屏幕上。

  #include#define N 2struct stu{ char name[10]; /pic/pic/pic/pic/pic/pic/pic/pic/pic/p>

  運行結果:

  Input data:

  Tom 2 15 90.5↙

  Hua 1 14 99↙

  Tom 2 15 90.500000

  Hua 1 14 99.000000

【C語言以數據塊的形式讀寫文件實例代碼】相關文章:

C語言文件操作解析詳解及實例代碼11-10

C語言數據類型轉換實例代碼11-27

C語言中文件操作詳解及實例代碼01-29

C語言快速排序實例代碼02-26

C語言合并排序及實例代碼10-19

C語言字符數據的合法形式12-31

C語言奇偶排序算法詳解及實例代碼11-12

C語言選擇排序算法及實例代碼03-16

C語言合并排序及實例代碼詳解10-05