Zastąp do określonej linii w c

Mam plik około 2000 wierszy tekstu, który generuję w swoim programie, każda linia ma informacje o pracowniku i jest wyprowadzana w ten sposób

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

Ale zawsze, gdy edytuję informacje o pracownikach, muszę zaktualizować plik, co robię, szukam linii i próbuję ją przepisać

Widziałem następujące pytanie kogoś z tym samym problemem, ale kiedy próbuję napisać do pliku, zawsze zapisuje na końcu pliku

nadpisać konkretną linię w pliku tekstowym?

Oto mój kod:

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

questionAnswers(3)

yourAnswerToTheQuestion