Súbor и как это записать? - C (СИ)

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

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

Помогите пожалуйста написать эту программу...

"Напишите программу, которая считывает стандартный ввод (клавиатуры). Дальнейшее чтение символов из файла ZNAK.TXT. Если программа для чтения из стандартного ввода (клавиатуры) 'S', пишет символы в файл загружается NOVY.TXT. Если вы загружаете любой другой символ, пишет загруженные символы на стандартный вывод (экран). NOVY.TXT файл. Стандартный вывод будет таким образом, содержать точную копию содержимого файла ZNAK.TXT."

Вот как это должно выглядеть... Заранее спасибо!!!

Решение задачи: «Súbor и как это записать?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main() {
    const char CFileRead[] = "ZNAK.TXT";
    const char CFileWrite[] = "NOVY.TXT";
    FILE* fr, * fw = stdout;
    int ch;
 
    if ((fr = fopen(CFileRead, "r")) == NULL) {
        perror(CFileRead);
        return 1;
    }
 
    if (((ch = getchar()) == 's')
        && (fw = fopen(CFileWrite, "w")) == NULL) {
        perror(CFileRead);
        return 1;
    }
 
    while ((ch = fgetc(fr)) != EOF) {
        fputc(ch, fw);
    }
 
    fclose(fw);
    fclose(fr);
 
    return 0;
}

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

В этом коде считываются данные из файла с помощью функции fgetc(), а затем записываются в другой файл с помощью функции fputc(). Вот список элементов кода:

  1. #include — подключает необходимые функции для работы с файлами и выводом данных
  2. #include — подключает функции для работы с памятью
  3. int main() { — функция main() является точкой входа в программу
  4. const char CFileRead[] = ZNAK.TXT; — объявление константной строки, содержащей имя файла для чтения
  5. const char CFileWrite[] = NOVY.TXT; — объявление константной строки, содержащей имя файла для записи
  6. FILE fr, fw = stdout; — объявление двух указателей на файлы
  7. int ch; — объявление переменной типа int для хранения символа
  8. if ((fr = fopen(CFileRead, r)) == NULL) { — попытка открыть файл для чтения, возвращаемое значение fopen() сохраняется в переменной fr
  9. perror(CFileRead); — вызов функции perror(), которая выводит сообщение об ошибке с указанным аргументом
  10. return 1; — возврат значения 1 при ошибке
  11. if (((ch = getchar()) == 's') — ожидание нажатия клавиши 's' и сохранение ее в переменной ch
  12. && (fw = fopen(CFileWrite, w)) == NULL) { — попытка открыть файл для записи, возвращаемое значение fopen() сохраняется в переменной fw
  13. perror(CFileRead); — вызов функции perror(), которая выводит сообщение об ошибке с указанным аргументом
  14. return 1; — возврат значения 1 при ошибке
  15. while ((ch = fgetc(fr)) != EOF) { — чтение символа из файла с помощью функции fgetc() и сохранение его в переменной ch
  16. fputc(ch, fw); — запись символа из переменной ch в файл с помощью функции fputc()
  17. fclose(fw); — закрытие файла для записи
  18. fclose(fr); — закрытие файла для чтения
  19. return 0; — возврат значения 0 при успешном выполнении программы
  20. } — конец функции main()

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


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

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

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