Итак, есть текст, к примеру: "я учусь в школе", который записывается в файл в программе. Нужно записать дополнительное слово "хорошей" перед словом школа (в этой же программе). Если пытаюсь это сделать с помощью fprinf, то слово школа просто затирается. Как сделать это не затирая слова, а сдвигая их вправо?
#include
int main (void)
{
FILE *fp;
if ((fp = fopen ("skul.txt", "w")) == NULL) {
printf ("ERROR of open file skul.txt
");
exit (EXIT_FAILURE);
}
fprintf (fp, "i lern in skul");
if (fclose (fp) != 0) {
printf ("ERROR of exit from file skul.txt
");
exit (EXIT_FAILURE);
}
if ((fp = fopen ("skul.txt", "r+")) == NULL) {
printf ("ERROR of open file skul.txt
");
exit (EXIT_FAILURE);
}
fseek (fp, 10L, SEEK_SET);
fprintf (fp, "good ");
if (fclose (fp) != 0) {
printf ("ERROR of exit from file skul.txt
");
exit (EXIT_FAILURE);
}
return EXIT_SUCCESS;
}
Ответ
Есть 2 варианта, можешь попробовать при записи поменять w на w+, даст возможность дополнения файла.2й вариант: считать предложение до нужного символа, потом считать от этого символа до конца , получишь 2 массива char затем добавляешь свое слово и перезаписываешь в файл, чуть сложнее, но точно сработает.
Комментариев нет:
Отправить комментарий