Редактировать определенную c строку текстового документа - PullRequest
1 голос
/ 05 мая 2020

Есть ли какой-нибудь конкретный c способ редактировать отдельную строку текстового документа? В настоящее время у меня есть программа, которая может найти, в какой строке находится раздел, который я хочу отредактировать, но я не знаю, есть ли способ переписать указанную строку c в документе без копирования всего документа в другую строку документа. по строке и попутно редактируя желаемый, а затем записывая все это обратно в исходный файл.

Есть ли способ записать поверх отдельной строки в документе, если у вас есть строка, которую вы хотите отредактировать?

1 Ответ

0 голосов
/ 05 мая 2020

Вот пример того, как заменить строку, она должна быть такой же длины. иначе вы переопределите другие строки. Если у вас есть этот случай, вам придется переписать оставшиеся данные.

образец файла:

a
b
XXXXXXXXXXXX
d
e

образец кода:

#include <stdio.h>

char new_line[]="hello world!";
int target_line_num = 2;
int main(void)
{
   FILE* filePtr = fopen("try.txt", "r+");
   char c;
   int current_line=0;

   while((c = fgetc(filePtr)) != EOF)
   {
       if(c == '\n')
       {
           current_line++;
       }
       if(current_line == target_line_num && c!='\r')
       {
           fseek(filePtr, 0, SEEK_CUR);
           for(int i=0;new_line[i];i++)
           {
            fputc(new_line[i], filePtr);

           }
       }
   }
   fclose(filePtr);
   return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...