Перезаписать на конкретную строку в c

У меня есть файл, содержащий около 2000 строк текста, который я генерирую в своей программе, каждая строка содержит информацию о сотруднике, и она выводится следующим образом.

1 1 Isaac Fonseca 58 c 1600 1310.40 6 1 0.22 2164.80 1
2 1 Manuel Gutierrez 22 d 1700 1523.37 4 1 0.13 897.26 1
3 1 Daniel Bernal 34 c 1600 1195.84 2 1 0.26 836.16 1
4 1 Miguel Gonzalez 43 e 1800 1195.84 0 1 0.15 0.00 1

Но каждый раз, когда я редактирую информацию о сотруднике, мне нужно обновлять файл, что я делаю, я ищу строку и пытаюсь переписать ее.

Я видел следующий вопрос о ком-то с такой же проблемой, но когда я пытаюсь записать в файл, он всегда записывает в конец файла

перезаписать конкретную строку в текстовом файле?

Вот мой код:

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);

Ответы на вопрос(3)

Ваш ответ на вопрос