кодесурса
«C

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

script1adsense2code
script1adsense3code

Обработка файла 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code