請教c語言如何提取未知長度檔案的內容

2021-12-19 23:38:24 字數 794 閱讀 4086

1樓:寒曦的海洋

int fseek(file *stream, long offset, int fromwhere):

這個函式,將檔案指標stream移至以fromwhere為基準,偏移offset個位元組的位置。常用的fromwhere有seek_set(檔案首地址,0),seek_cur(檔案指標當前位置, 1),seek_end (檔案結束位置,2)。

long ftell(file *stream):

該函式返回檔案指標stream相對於檔案首地址的偏移位元組數。

可以先利用fseek與ftell求出檔案大小,再一次性進行讀取。**如下:

#include

#include

#include

int main(void)

return 0;}

2樓:匿名使用者

如果是ascii字元方式(包括國標漢字內碼的ansi模式)儲存的txt檔案,直接用api讀檔案長度即可,如果是資料流則檢索到非法字元即結束。如果是unicode方式的txt,那麼還要過濾掉檔案開頭的標誌欄位,並將16位的資料編碼轉換為你需要的字元編碼。

3樓:匿名使用者

fseek這個函式知道不,將檔案指標指向檔案尾。

fseek(檔案指標,0,seek_end);

int length = ftell(檔案指標);

fseek(檔案指標,0,seek_set);//將檔案指標返回到檔案頭

現在可以讀寫了,length就是你需要的n............

如何用C 讀取未知檔名的檔案(用C 程式依次讀取某一目錄下的所有檔案)

隨便寫的大概的思路吧,沒編譯過可以會有錯 win32 find data findfiledata handle hfind bool ffinished false char findpath 搜尋路徑char key 找 關鍵字 file pfile char pbuf dword dwsize...

C語言求字串長度的問題,c語言如何求字串長度?

你的 出現問題的原因是scanf s a a是一個char型別的變數,系統為它分配了一個位元組的記憶體空間,但是你卻輸入了一個字串到以a的地址為首地址的一段連續的記憶體空間裡,這樣就出現了越界錯誤.但是printf函式並不檢查越界錯誤,它會按正常的方法執行,然後程式統計出長度,列印出來結果.但是返回...

C語言中如何將連結串列儲存為檔案,C語言中如何將一個連結串列儲存為檔案?

第一步 建立檔案 比如說 file fp fopen 第二步 寫一個迴圈,把連結串列的節點一個一個寫進檔案裡。第三部 記得關閉檔案 1 基本思想是通過遍歷的方式儲存 資料,不儲存指標域 還原的時候,根據儲存的方式讀取資料,再建連結串列。2 比如單連結串列,一次遍歷可以得到一個一維陣列,儲存該陣列即可...