Обработка файлов 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: