C庫修改文字出現字元缺失

2021-08-20 10:45:58 字數 678 閱讀 6768

myfile = fopen("***", "rb+");  

fseek(myfile, 0l, seek_set);

memset(str, 0, 256);

while (fgets(str, 256 , myfile))

memset(str, 0, 256);

}

fclose(myfile);

number_of_camera = 1

camera_id = 0

假設需要將number_of_camera的值修改為100,將會發現,修改之後,文字內容將變成

number_of_camera = 100

mera_id = 0

會發現,在100之後的下一行,本身為camera_id的,卻變成了mera_id,少了前面的ca字元。

這個是由於文字的存放結構決定的,在開啟乙個檔案進行修改的時候,如果是以追加的形式開啟檔案,可以在文字的末端增加資料,但如果是需要在文字內容中間增加一些資料,那麼這些資料只能覆蓋後面的字元資料了。

一句話說就是:修改檔案,檔案的長度已經確定了,該檔案內容只能這麼多,可以少,不能多,多了就會相應的覆蓋原有的資料,除非你是新建立的檔案或者是以追加的形式開啟,在文字內容末端增加資料。

c語言文字區域性修改

兩種方法修改區域性資料 已在記憶體中修改過單行資料後直接呼叫該函式 void rebuildfile list a list為結構體指標,指標a指向已修改部分鍊錶 fclose p1 fclose p2 remove date.txt 刪除date.txt檔案 rename date2.txt da...

C語言程式 字元出現次數

問題描述 輸入乙個字串,再輸入乙個字元,統計前面輸入的字串內該字元出現的次數 區分大小寫 輸入形式 要求輸入乙個字串 可以包含空格 再輸入乙個字元 輸出形式 輸出給字元在字串 現的次數 樣例輸入 afb cd e fff f include include main printf d n count...

c 讀取文字檔案出現亂碼

在寫c 的時候,遇到乙個問題,在使用file.readalltext 開啟文字檔案的時候,除錯發現開啟的文字是亂碼,我生成的這個文字檔案是在c 程式下,以多位元組格式生成的,然後儲存的乙個文字,c 使用file.readalltext 讀取這個文字的時候沒有指定字符集。解決方法 1.使用file.r...