特定行我有大約2000,我在我的程序生成的文本行的文件,每行有一個員工的信息,它的outputed這樣覆蓋在C
11艾薩克·豐塞卡58℃1600 1310.40 6 1 0.22 2164.80 1
2 1曼努埃爾Gutierrez的22 d 1700 1523.37 4 1 0.13 897.26 1
3 1丹尼爾貝納爾34 C 1600 1195.84 2 1 0.26 836.16 1
4 1米格爾岡薩雷斯部43e 1800 1195.84 0 1 0.15 0.00 1
但我每當我編輯員工信息我必須更新文件,我在做什麼這是我搜索該行,並嘗試重寫它
我見過以下問題的人有同樣的問題,但是當我嘗試寫入文件時,它始終寫入文件
overwriting a specific line on a text file?
這裏到底是我的代碼:
datos = fopen(archivo,"a+");
for(i=0;i<num;i++){
// buscar la linea
fgets(lineaA,100,datos);
// sobreescribir
if(i == (num-1))
cursor = ftell(datos);
}
cursor -= strlen(lineaA) - 1;
fseek(datos,cursor,SEEK_CUR);
fputs(linea2,datos);
fclose(datos);
這是棘手的 - 'a +'打開追加,這不是你想要的。也許'r +',或者你必須使用不同的打開命令。但我從來沒有試過這樣做。 (請注意,您需要覆蓋原始行的相同字節數。) – 2012-07-14 22:36:52
@HotLicks將其更改爲「r +」,並且它附加到代碼中的特定行,現在我只需要重新計算我的遊標位置,並使其刪除其他內容,因爲它只是追加它,它不會覆蓋它 – 2012-07-14 22:43:34