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

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

Напишите программу на C для удаления определенной строки из файла.

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

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

Код C:

  #include  #include  #define MAX 256 int main () {int lno, ctr = 0;  char ch;  ФАЙЛ * fptr1, * fptr2; char fname [MAX];  char str [MAX], temp [] = "temp.txt"; printf (" n  n Удалить определенную строку из файла:  n"); printf ("-----------  ------------------------------  n ");  printf ("Введите имя файла для открытия:"); scanf ("% s", fname);  fptr1 = fopen (имя файла, "г");  if (! fptr1) {printf ("Файл не найден или невозможно открыть входной файл !!  n");  возврат 0;  } fptr2 = fopen (temp, "ш"); //открыть временный файл в режиме записи if (! fptr2) {printf ("Невозможно открыть временный файл для записи !!  n");  fclose (fptr1);  возврат 0;  } printf ("Введите строку, которую вы хотите удалить:");  scanf ("% d", & lno); lno ++; //копируем все содержимое во временный файл, кроме определенной строки while (! feof (fptr1)) {strcpy (str, " 0");  fgets (str, MAX, fptr1);  если (! feof (fptr1)) {ctr ++; /* пропустить строку с заданным номером */if (ctr! = lno) {fprintf (fptr2, "% s", str);  }}} fclose (fptr1);  fclose (fptr2);  удалить (имя); //удаляем исходный файл rename (temp, fname); //переименовать временный файл в исходное имя/* ------ Прочитать файл ---------------- */fptr1 = fopen (fname, "r");  ch = fgetc (fptr1);  printf ("Теперь содержимое файла% s:  n", fname);  в то время как (ch! = EOF) {printf ("% c", ch);  ch = fgetc (fptr1);  } fclose (fptr1);/* ------- Конец чтения --------------- */return 0;  }  

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

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

Блок-схема:

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

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