在c語言中對檔案的操作是通過file結構體來完成的。
讀檔案:
1、讀取檔案:fread()
2、memset():用指定的字元來設定一塊buffer.可避免字串找不到結尾,也可避免增加不必要的字串長度
3、得到檔案的長度:ftell(),它是得到檔案指標當前的位置,因為檔案指標隨檔案移動,所以指標當前位置就是檔案的長度。
4、rewind()重新放檔案指標到檔案開始處。
5、移動檔案指標fseek(),
示例:file *ofile=fopen("text.txt","w");
char *strbuf;
seek(strbuf,0,seek_end);
int len = ftell(ofile);
strbuf = new char[len+1]
rewind(ofile);
fread(strbuf,0,len,ofile);
strbuf[len]=0
messagebox(strbuf)
fclose(ofile);
寫檔案:
1、定義file結構體的指標;
2、得到file結構體的指標:file *fopen()
3、寫檔案 fwrite()
4、關閉檔案fclose()
5、重新整理快取區fflush()
6、移動檔案指標fseek()
示例:file *ofile=fopen("text.txt","w");
fwrite("text",1,strlen("text"),ofile);
fclose(ofile);
//fseek(ofile,0,seek_set);
//fwrite("234354text",1,strlen("234354text"),ofile);
//fflush(ofile);
寫檔案時經常會遇到的問題:
知識點:
1、在c語言中,從磁碟向記憶體讀資料,它是先從磁碟檔案中將一批資料輸入到記憶體的緩衝區當中,充滿整個緩衝區,當我們呼叫讀取函式的時候,從緩衝區中逐步將資料送到程式資料區當中。
2、特殊應用:比如伺服器端有軟體監控了很多裝置,這些裝置不斷的把日誌資訊傳送給伺服器,伺服器接收到這些日誌資訊後需要將這些資訊寫入到磁碟檔案當中。這時如果我們使用了c語言的帶緩衝的檔案系統可能會出現一些問題,比如伺服器斷電了,宕機了等,這時會導致一些資訊沒有寫到伺服器,這時就使用fflush()來解決;3
如果想到回到檔案的開頭繼續寫入,就需要將指標移動到檔案的開頭。
4、在字串長度後多寫乙個位元組,多寫的那個位元組為空,在c語言中空即0,正好可以作為字串的結尾。但它有乙個缺點就是它會增加檔案的長度,可以使用memset函式來避免這個問題。
5、對於字元來說和整數是可以互操作的,如果給它賦乙個整數值,實際上是給它乙個ascii碼,賦給它字元也是ascii碼,10是換行,當我們用文字方式去讀和用二進位制方式去讀時,是有明顯區別的。
二進位制檔案:可執行程式、圖形、圖象、聲音等檔案
二者都是記憶體中的ascii資料。都可以以二進位制試開啟。
當按照方便方式往檔案中寫入資料時,遇到換行字元,則會轉換為回車、換行,在讀取檔案時,遇到回車、換行的組合,則會轉換為換行字元
當按照二時行方式往檔案中寫入資料,則將資料在記憶體中的儲存形式原樣輸出到檔案中。
C語言中對檔案的操作
13.3 檔案的開啟與關閉 檔案在進行讀寫操作之前要先開啟,使用完畢要關閉。所謂開啟檔案,實際上是建立檔案的各種有關資訊,並使檔案指標指向該檔案,以便進行其它操作。關閉檔案則斷開指標與檔案之間的聯絡,也就禁止再對該檔案進行操作。在 語言中,檔案操作都是由庫函式來完成的。在本章內將介紹主要的檔案操作函...
R 語言中對檔案的操作
由於最近在處理一些真實資料時涉及到巢狀的.tar.gz檔案的解壓,手動乙個乙個解壓過於麻煩。可以使用 shell 指令碼或者 bat 指令碼來做,但想嘗試使用 r 語言對其進行完全解壓,這裡就需要涉及到對檔案與資料夾的一些操作。網上已經有許多現有教程,這裡參考了很多網上的 不過會嘗試盡量寫得更加詳細...
c語言對檔案的操作
檔案使用方式 含義 r 唯讀 開啟乙個文字檔案,只允許讀資料 w 只寫 開啟或建立乙個文字檔案,只允許寫資料 a 追加 開啟乙個文字檔案,並在檔案末尾寫資料 rb 唯讀 開啟乙個二進位制檔案,只允許讀資料 wb 只寫 開啟或建立乙個二進位制檔案,只允許寫資料 ab 追加 開啟乙個二進位制檔案,並在檔...