C Упражнения: замена определенной строки в файле новым текстом

Обработка файлов C: Упражнение 9 с решением

Напишите программу на C, чтобы заменить определенную строку другим текстом в файле.

 Предположим, что содержимое файла test.txt: тестовая строка 1 тестовая строка 2 тестовая строка 3 тестовая строка 4 

Пример решения:

Код C:

  #include  #include  #define MAX 256 int main () {ФАЙЛ * fptr1, * fptr2;  int lno, linectr = 0;  char str [MAX], имя_файлы [MAX];  char newln [MAX], temp [] = "temp.txt"; printf (" n  n Заменить определенную строку в текстовом файле новым текстом:  n"); printf ("------  --------------------------------------------------  -----  n ");  printf ("Введите имя файла, который нужно открыть:");  fgets (fname, MAX, stdin);  имя_файла [стрлен (имя_файла) - 1] = ' 0';  fptr1 = fopen (имя файла, "г");  if (! fptr1) {printf ("Невозможно открыть входной файл !!  n");  возврат 0;  } fptr2 = fopen (temp, "ш");  if (! fptr2) {printf ("Невозможно открыть временный файл для записи !!  n");  fclose (fptr1);  возврат 0;  }/* получить новую строку от пользователя */printf ("Введите содержимое новой строки:");  fgets (newln, MAX, stdin); /* получаем номер строки для удаления конкретной строки */printf ("Введите строку, которую вы хотите заменить:");  scanf ("% d", & lno);  lno ++; //копируем все содержимое во временный файл, кроме определенной строки while (! feof (fptr1)) {strcpy (str, " 0");  fgets (str, MAX, fptr1);  если (! feof (fptr1)) {linectr ++;  если (linectr! = lno) {fprintf (fptr2, "% s", str);  } else {fprintf (fptr2, "% s", newln);  }}} fclose (fptr1);  fclose (fptr2);  удалить (имя);  переименовать (temp, fname);  printf ("Замена прошла успешно .. !!  n");  возврат 0;  }  

Пример вывода:

 Заменить определенную строку в текстовом файле новым текстом: -----------  --------------------------------------------------  Введите имя файла, который нужно открыть: test.txt Введите содержимое новой строки: 2 Введите строку, которую вы хотите заменить: 2 Замена выполнена успешно .. !!  

Блок-схема:

Редактор кода программирования на C:

Оцените статью
nanomode.ru
Добавить комментарий