Упражнения на C: заменить конкретную строку в файле новым текстом
Обработка файла C: Упражнение 9 с решением
Напишите программу на C, чтобы заменить определенную строку другим текстом в файле.
Предположим, что содержимое файла test.txt: тестовая линия 1 тестовая линия 2 тестовая линия 3 тестовая линия 4
Пример решения:
Код C:
#include <stdio.h>
#include <string.h>
#define MAX 256
int main()
{
FILE *fptr1, *fptr2;
int lno, linectr = 0;
char str[MAX],fname[MAX];
char newln[MAX], temp[] ="temp.txt";
printf("\n\n Replace a specific line in a text file with a new text :\n");
printf("-------------------------------------------------------------\n");
printf(" Input the file name to be opened : ");
fgets(fname, MAX, stdin);
fname[strlen(fname) - 1] ='\0';
fptr1 = fopen(fname, "r");
if (!fptr1)
{
printf("Unable to open the input file!!\n");
return 0;
}
fptr2 = fopen(temp, "w");
if (!fptr2)
{
printf("Unable to open a temporary file to write!!\n");
fclose(fptr1);
return 0;
}
/* get the new line from the user */
printf(" Input the content of the new line : ");
fgets(newln, MAX, stdin);
/* get the line number to delete the specific line */
printf(" Input the line no you want to replace : ");
scanf("%d", &lno);
lno++;
// copy all contents to the temporary file other except specific line
while (!feof(fptr1))
{
strcpy(str, "\0");
fgets(str, MAX, fptr1);
if (!feof(fptr1))
{
linectr++;
if (linectr != lno)
{
fprintf(fptr2, "%s", str);
}
else
{
fprintf(fptr2, "%s", newln);
}
}
}
fclose(fptr1);
fclose(fptr2);
remove(fname);
rename(temp, fname);
printf(" Replacement did successfully..!! \n");
return 0;
}
Пример вывода:
Замените конкретную строку в текстовом файле новым текстом: -------------------------------------------------- ----------- Введите имя файла, который будет открыт: test.txt Введите содержимое новой строки: 2 Введите строку, которую вы хотите заменить: 2 Замена прошла успешно .. !!
Блок - схема:
Редактор кода программирования C:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Previous: написать программу на C для удаления определенной строки из файла.
Далее: написать программу на C, чтобы добавить несколько строк в конце текстового файла.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code