文字檔案的一些問題的粗淺看法

2021-10-09 23:43:07 字數 882 閱讀 3346

不在意格式。

源於我寫c語言鍊錶大作業。診療記錄,無所謂任何名字。最終都是對寫在檔案中的部分字串進行區域性修改的操作。

我一開始有兩種思路。我以為有兩種方法,第一種是移動檔案指標,fseek,然後進行覆蓋操作,許可權為fopen(「bulabula.txt」,「r+」),這樣除錯下來。

一開始使用的fscanf(%s)發現讀不了空格。造成了字串的strlen誤解,然後fseek報錯是-1。後來即使發現了這個問題,我又開始想這樣乙個問題。如果覆蓋前後的字串長度是前者大於後者,那麼輸出之後,無疑會使得後面的部分字串的尾巴暴露。如此沒有做到能夠區域性修改。這不是我想要的結果。

於是,我想覆蓋寫上200個空格,確保把之前的字串給清空,然後進行再次fseek回去覆蓋寫。結果,發現,後面的部分文字居然缺失了。

比如原本的字元是:

202009282245 以後 45 78 89

結果現在成了:

282245 以後 45 78 89

就是說前面的一部分字元被覆蓋了,可以這樣說的,因為我對於字串的操作只有覆蓋這一操作。那麼如此我想到了以下幾點:

文字檔案的編碼方式:

必然是連續的串,如何來理解這個連續呢?即看到的是:

456億的大v

456789帶個人

實際上的編碼如下:

456億的大v(換行編碼)456789帶個人

那麼我對於前者的覆蓋,就會造成實際上把後面的部分字元覆蓋成了空,而因為換行符號還是存在,或者是我自己又輸出了換行,那麼無疑就會造成這樣的結果。

目前對於編碼的理解還是比較粗淺。所以,不敢說是正確,後來沒有辦法,只好繞道而行。於是,我直接將資料放到鍊錶裡面,重新fopen(「w」)了整個檔案,這次倒是真的沒有什麼大問題了。經過了過量的嚴格限制之後,終於實現了我的功能。不過演算法依然缺乏。

c 文字檔案的讀寫

對檔案的操作首先要先引入system.io命名空間 輸入流用於從檔案寫入資料 寫操作 輸出流用於向檔案讀取資料 讀操作 1 filestream類有助於檔案的讀寫與關閉。例 建立乙個filestream物件f來讀取名為sample.txt的檔案 filestream f new filestream...

文字檔案編碼問題的乙個坑

事件起因 在我用socket練習http響應時,網頁顯示英文是亂碼 處理 1 將網頁檔案用txt開啟,另存為時改編碼為utf 8,結果網頁一直無法顯示了 2 新建乙個html文件就可以正常顯示,懷疑html文件問題 3 對改了編碼的文件進行研究發現,改成utf 8後文件開頭多了乙個 特殊符號,造成h...

看到的一些文字分類的一些問題(評論)

2.你好,路過看到你的問題,我在某公司實習的時候,50w新聞語料分19類,長文 實際長短非常不均衡,textcnn 語料應該是句子 然後textcnn random初始化,沒有用pretrain的vector,然後效果一般,fasttext當時輸入是文字加作者資訊 f1飄過0.9 不輸入作者資訊0....