Я пытаюсь выяснить, как написать новую строку текста в начале файла (заголовок). Я знаю, что могу открыть файл или выполнить поиск в начале файла, но если я напишу с этим, он перезапишет то, что там. Нужно ли мне писать новый файл и затем построчно записывать в него другие данные, или есть лучший способ?
Файл примера:
1, 01/01/09, somedata, foo, bar
2, 01/02/09, somedata, foo, bar
3, 01/03/09, somedata, foo, bar
И я хочу закончить с
3, 1-3, 01/04/09
1, 01/01/09, somedata, foo, bar
2, 01/02/09, somedata, foo, bar
3, 01/03/09, somedata, foo, bar
EDIT:
Вот что я в итоге сделал:
FILE *source;
FILE *output;
char buffer[4096];
size_t bytesRead;
memset(buffer, 0, sizeof(buffer);
source = fopen("sourcefile.txt", "r");
output = fopen("output.txt", "w+");
fprintf(output, "my header text\n");
while(!feof(source))
{
bytesRead = fread(&buffer, 1, sizeof(buffer), source);
fwrite(&buffer, 1, bytesRead, output);
}
fprintf(output, "my footer text");
fclose(source);
fclose(output);
remove(source);
rename("output.txt", "source.txt");