-
關於你的問題,我也想過,當時我只是覺得把所有資料都讀進記憶體不好,然後我寫了幾個程式試了一下,然後得到了乙個非常無奈的解決方案。
首先,您需要能夠找到要修改的資料的位置。 其次,你修改的資料長度應該和改動前一樣,這是為了防止以後讀取資料時出錯(因為即使你修改了檔案的內容,檔案的長度也不會改變,如果你改寫的長度大於之前的長度, 它會覆蓋下乙個學生記錄的內容,而不是新增,也就是說,它後面的學生記錄的內容會變得不完整,當然,如果你在檔案末尾修改它,那就另當別論了)。
這樣一來,就有乙個不太成熟的解決方法,那就是使結構的長度固定,即每個學生記錄的長度是相同的。 這樣,定位和修改也很方便。
fwrite() 的操作和寫檔案是一樣的,檔案內容被清除的問題需要你控制檔案的開啟方式,這很簡單,只是乙個引數的問題。
-
如果想在不改變其他資訊的情況下修改檔案中的某個特定資訊,就必須將整體呼叫到記憶體中,沒有其他快捷方式,fseek 函式只能讀取檔案資訊,不能更改檔案資訊。
-
不需要讀出來,用 fseek 定位檔案指標指向你要修改的結構體,然後用 fwrite 寫直接覆蓋,關鍵是檔案指標定位要準確,結構要一致。
-
然後你可以先把學生資訊複製到C檔案中,然後點選關閉,會彈出乙個對話方塊,不管儲存與否,都可以按是。 然後再次開啟它,清除不需要的檔案,儲存它們,然後做同樣的事情。
-
如果您已經知道學生在哪裡,則可以使用 fopen(file name,"RB+(或 R+))開啟檔案,指定位置,並呼叫 fwrite() 寫入相關內容。
-
問題: 1.如何在C語言中讀取大檔案? (是否要使用記憶體對映和 64 位 API? )
答:批量處理,就像普通檔案一樣。 這只是幾個週期。
2. 如何計算檔案中的行數?
答:計算檔案中換行符的數量。 批處理,計算。 還儲存第 1000 個倒計時回車符的檔案指標位置。
3. 如何讀取檔案中一行的資料? (fgets() api?答:識別換行符。
問:讀取最後 1,000 行單位名稱。
答:為了提高效率,開啟檔案後,從底部找到第 1000 個回車符的檔案指標位置並讀取。 使用換行符作為拆分進行提取。
-
DSP:VC開發環境生成的專案檔案,在VC4及更早版本中用於定義專案。 專案檔案,文字格式。
NCB:NCB是“No Compile Browser”的縮寫,用於儲存ClassView、WizardBar和Component Gallery的資訊,由VC開發環境自動生成。 沒有編譯來瀏覽檔案。
當自動完成功能出現問題時,可以刪除此檔案。 它是在專案編譯後自動生成的。
OPT:VC開發環境自動生成的檔案,用於在工作區中儲存各種選項。 關於開發環境的專案引數檔案。 例如,工具欄位置資訊等。
PLG:編譯資訊檔案,編譯過程中的錯誤和警告資訊檔案。
-
從檔案編碼的角度來看,檔案可以分為ASCII程式碼檔案和二進位程式碼檔案。
ASCII 檔案,也稱為文字檔案,儲存在磁碟上,每個字元乙個位元組,用於儲存相應的 ASCII 程式碼。 例如,數字 5678 以以下形式儲存:
ASC程式碼: 00110101 00110110 00110111 00111000
十進位:5 6 7 8 總共占用 4 個位元組。 ASCII程式碼檔案可以按字元顯示在螢幕上,例如源程式檔案是ASCII檔案,檔案的內容可以用DOS命令型別顯示。
由於它以字元顯示,因此可以閱讀文件的內容。
二進位檔案以二進位編碼儲存。 例如,數字 5678 僅以00010110 00101110兩個位元組的形式儲存。
二進位檔案也可以顯示在螢幕上,但無法讀取其內容。 在處理這些檔案時,系統不會區分型別,而是將它們視為字元流並以位元組為單位進行處理。 輸入和輸出字元流的開始和結束僅由程式控制,而不由物理符號(如回車符)控制。
因此,此類檔案也稱為“流式檔案”。
-
二進位模式和文字模式之間的區別。
1).在 Windows 系統中,在文字模式下,檔案是:""代表換行符。 如果以文字模式開啟檔案並使用 fputs 等函式編寫換行符"",則自動顯示該功能""加上在前面""。
也就是說,實際寫入檔案的內容"" 。
2).在類 Unix Linux 中文模式下,檔案以""代表換行符。 因此,Linux 系統中的文字模式和二進位模式沒有區別。
詳細檢視差異,因此都是流式傳輸檔案。
至於整數的編碼,這些只與你如何使用檔案 io 函式有關,與檔案模式無關。
我們先談談壓縮的原理:計算機處理資訊以二進位數(0和1)的形式進行標記,壓縮軟體用特殊字元壓縮二進位資訊中的同一字串,從而減小檔案大小。 壓縮比根據檔案型別的不同而有所不同,例如,文件檔案的壓縮比非常大(乙個單詞或乙個單詞會在同一檔案中重複出現),而視訊和音訊檔案的壓縮比相對較小(每個畫素的顏料不同,對應的二進位**不同顏色和顏色深淺, 不同的對比度、不同的亮度、不同的音調和音色等是不同的)。 >>>More