Запись кода программы в текстовый документ - C (СИ)
Формулировка задачи:
Здравствуйте, у меня возникла проблема с тем как записать код программы в текстовый документ, помогите пожалуйста.
Вот код программы:
#include <stdio.h> #include <locale.h> main() { int i = 1; char p; FILE *f1;//Файл для чтения FILE *f2;//Файл для записи setlocale(LC_ALL, "RUS"); if ((f1 = fopen("dota.txt", "r+t")) == NULL) { printf("Ошибка открытия файла"); } if ((f2 = fopen("dotaout.txt", "w")) == NULL) { printf("Ошибка записи в файл"); } fprintf(f2, "%d", i); while (!feof(f1)) { fscanf(f1, "%c", &p); if (feof(f1)) break; if (p == 10) { i++; fprintf(f2, "%c%d", p, i); } else fprintf(f2, "%c", p); } fclose(f1);//закрытие файла для чтения fclose(f2);//закрытие файла для записи system("pause"); }
Решение задачи: «Запись кода программы в текстовый документ»
textual
Листинг программы
#include <stdio.h> #include <locale.h> int main() { int i = 1; char p; FILE *f1;//Файл для чтения FILE *f2;//Файл для записи setlocale(LC_ALL, "RUS"); if ((f1 = fopen("dota.txt", "r+t")) == NULL) { printf("Ошибка открытия файла"); } if ((f2 = fopen("dotaout.txt", "w")) == NULL) { printf("Ошибка записи в файл"); } fprintf(f2, "%d%c", i,' '); while (!feof(f1)) { fscanf(f1, "%c", &p); if (feof(f1)) break; if (p == 10) { i++; fprintf(f2, "%c%d%c", p, i,' '); } else fprintf(f2, "%c", p); } fclose(f1);//закрытие файла для чтения fclose(f2);//закрытие файла для записи return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется переменная i типа int и инициализируется значением 1
- Определяется переменная p типа char
- Определяются две переменные типа FILE*, которые используются для работы с файлами - f1 и f2.
- Устанавливается локаль с помощью функции setlocale(LC_ALL,
RUS
) - Проверяется корректность открытия файла
dota.txt
для чтения с помощью функции fopen() и выводится сообщение об ошибке в случае неудачи - Проверяется корректность открытия файла
dotaout.txt
для записи с помощью функции fopen() и выводится сообщение об ошибке в случае неудачи - В файл
dotaout.txt
записывается значение переменной i и символ пробела с помощью функции fprintf() - Организован цикл while, который будет выполняться до тех пор, пока не достигнут конец файла
dota.txt
(до тех пор, пока не будет встречен символ новой строки) - Внутри цикла считывается очередной символ из файла
dota.txt
с помощью функции fscanf() - Если считанный символ является символом новой строки, то увеличивается значение переменной i, и в файл
dotaout.txt
записывается значение переменной i, символ новой строки и пробел с помощью функции fprintf() - Если считанный символ не является символом новой строки, то он просто записывается в файл
dotaout.txt
- После окончания чтения файла
dota.txt
закрываются оба файловых указателя с помощью функции fclose() - Возвращается значение 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д