Файл a.txt нужно сравнить с файлом c.txt - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Есть файл a.txt: 1 2 3 4 5 Есть файл c.txt: 2 3 Нужно создать файл b.txt такого типа: 1 4 5 И после этого нужно записать значения с файла b.txt в файл c.txt Файл c.txt: 2 3 1 4 5 Жду ответа, заранее спасибо!

Решение задачи: «Файл a.txt нужно сравнить с файлом c.txt»

textual
Листинг программы
#include <stdio.h>
#include <string.h> 
 
int main(void) 
{
    char tmp1[200], tmp2[200];
    FILE *fa = fopen("a.txt", "r"), *fb = fopen("b.txt", "w"),
        *fc = fopen("c.txt", "r");
    if (!fa || !fb || !fc) return 1;
    
    fscanf(fc, "%s", tmp2);    
    while (!feof(fa))
    {
        fscanf(fa, "%s", tmp1);
        if (strcmp(tmp1, tmp2) <= 0 || feof(fc))
        {
            if (strcmp(tmp1, tmp2))
                fprintf(fb, "%s\n", tmp1);
        }
        else if (!feof(fc))
            fscanf(fc, "%s", tmp2);
    }
    
    fclose(fa);
    fclose(fb);
    fclose(fc);
    
    fb = fopen("b.txt", "r"), fc = fopen("c.txt", "a");    
    while (fscanf(fb, "%s", tmp1) != EOF && fprintf(fc, "\n%s", tmp1));
    
    fclose(fb);
    fclose(fc);
    return 0;
}

Объяснение кода листинга программы

  1. Открываются файлы 'a.txt', 'b.txt' и 'c.txt' для чтения и записи соответственно.
  2. Временные переменные tmp1 и tmp2 объявлены размером 200 символов.
  3. Программа считывает первую строку из файла 'c.txt' во временную переменную tmp2.
  4. В цикле while считываются строки из файла 'a.txt' и сравниваются со строкой из файла 'c.txt' во временной переменной tmp2.
  5. Если строка из 'a.txt' меньше или равна строке из 'c.txt' или достигнут конец файла 'c.txt', то эта строка записывается в файл 'b.txt'.
  6. Если строка из 'a.txt' больше строки из 'c.txt', то считывается следующая строка из 'c.txt' во временную переменную tmp2.
  7. В конце программы файл 'b.txt' открывается для чтения, а файл 'c.txt' открывается для добавления.
  8. Программа считывает все строки из файла 'b.txt' и записывает их в файл 'c.txt'.
  9. Файлы 'b.txt' и 'c.txt' закрываются.
  10. Результат работы программы 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5
Похожие ответы