Программа для просмотра файлов "Súbor" в С(Си) - C (СИ)

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

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

Помогите пожалуйста написать программу, не могу понять как это должно выглядит... Это условия задачи - "

Напишите программу, которая группирует фразы из prvy.txt и druhy.txt и записует в файловую treti.txt попеременно так, чтобы каждое парное слово в файле будет treti.txt из файла prvy.txt и каждый пара из файла druhy.txt в порядке были в исходном файле. Каждое слово в файле treti.txt будет с последующим пробелом. Кроме того, перед каждым словом отметит выражения, из которого файлы слово происходит. Если из файла prvy.txt, бренд символ +, если druhy.txt, бренд является признаком -. Если некоторые из файлов содержит больше слов, чем видов, и эти будут перечислены в ряд в конце файла treti.txt. Предположим, что слово содержит только буквы и могут быть разделены только одним пробелом.

" Я не знаю как это записать, но это должно выглядить так... Заранее спасибо!!!

Решение задачи: «Программа для просмотра файлов "Súbor" в С(Си)»

textual
Листинг программы
#include <stdio.h>
#include <assert.h>
#include <ctype.h>
 
int main() {
    FILE* f = NULL, * f1, * f2, * f3;
    int ch;
 
    assert((f1 = fopen("pervy.txt", "r")));
    assert((f2 = fopen("druhy.txt", "r")));
    assert((f3 = fopen("treti.txt", "w")));
 
    while (!feof(f1) || !feof(f2)) {
        f = (f == f1) ? f2 : f1;
 
        if ((ch = fgetc(f)) != EOF) {
            fprintf(f3, "%c%c", (f == f1) ? '+' : '-', ch);
            while (((ch = fgetc(f)) != EOF) && (!isspace(ch))) {
                fputc(ch, f3);
            }
            fputc(' ', f3);
        }
    }
 
    fclose(f3);
 
    assert((f3 = fopen("treti.txt", "r")));
    while ((ch = fgetc(f3)) != EOF) {
        putchar(ch);
    }
 
    fclose(f3);
    fclose(f2);
    fclose(f1);
 
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы:
    • stdio.h для работы с файлами и выводом данных на экран;
    • assert.h для проверки истинности выражения перед выполнением программы;
    • ctype.h для определения класса символа (является ли он буквой, цифрой, знаком препинания и т.д.).
  2. Определяется точка входа в программу - функция main().
  3. Создаются четыре переменные:
    • FILE* f, FILE* f1, FILE* f2, FILE* f3 для работы с файлами.
  4. В блоке assert() открываются три файла:
    • f1 открывает файл pervy.txt для чтения;
    • f2 открывает файл druhy.txt для чтения;
    • f3 открывает файл treti.txt для записи.
  5. В цикле while происходит чтение двух файлов одновременно:
    • f переключается между f1 и f2 с помощью тернарного оператора;
    • Если символ не является концом файла (EOF), он записывается в f3 вместе с символом-разделителем;
    • До тех пор, пока не встретится пробел или конец файла, в f3 записываются все символы из текущего файла.
  6. Файл f3 закрывается.
  7. В блоке assert() открывается файл treti.txt для чтения.
  8. В цикле while происходит чтение символов из f3 и их вывод на экран.
  9. Файл f3 закрывается.
  10. Файлы f2 и f1 закрываются.
  11. Возвращается значение 0, что означает успешное выполнение программы.

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


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

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

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