Страницы

Поиск по вопросам

среда, 17 июля 2019 г.

Запись в файл перед уже записанным текстом

Итак, есть текст, к примеру: "я учусь в школе", который записывается в файл в программе. Нужно записать дополнительное слово "хорошей" перед словом школа (в этой же программе). Если пытаюсь это сделать с помощью fprinf, то слово школа просто затирается. Как сделать это не затирая слова, а сдвигая их вправо?
#include #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 затем добавляешь свое слово и перезаписываешь в файл, чуть сложнее, но точно сработает.

Комментариев нет:

Отправить комментарий