特定行我有大约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