Переписать текст из одного файла в другой - C (СИ)
Формулировка задачи:
всем привет вот имеется прога, которая из одного txt-шного файла переводит текст в другой! все работает хорошо, но с достаточно маленьким первым файлом! вопрос: что надо добавить в коде, чтобы переводились файлы, не зависимые от их размера! (чтоб вся "война и мир" перевелась)
Листинг программы
- #include <stdlib.h>
- #include <stdio.h>
- #include <iostream>
- #include <conio.h>
- void LoadFile(char *file);
- void ResultFile(char *file);
- int main(){
- setlocale(LC_ALL, "rus");
- char file[100]={NULL};
- LoadFile(file);
- ResultFile(file);
- printf("программа перевод закончила!");
- getch();
- }
- void LoadFile (char *file)
- {
- int i=0;
- FILE *FIRST;
- if(!(FIRST = fopen("input.txt", "r"))) return;
- while (!feof( FIRST ))
- {
- fscanf(FIRST, "%c", &file[i]);
- i++;
- }
- file[i]='\0';
- fclose(FIRST);
- }
- void ResultFile(char *file)
- {
- FILE *SECOND=fopen("output.txt","w");
- fprintf (SECOND, "%s", file);
- }
Решение задачи: «Переписать текст из одного файла в другой»
textual
Листинг программы
- FILE *in;
- FILE *out;
- if((in=fopen("test.txt","r"))==NULL) {
- cout<<"bug1";
- cin.get();
- return 0;
- }
- if((out=fopen("dest.txt","w"))==NULL) {
- cout<<"Bug2";
- cin.get();
- return 0;
- }
- while(true) {
- int ch=getc(in);
- if(ch==EOF)break;
- putc(ch,out);
- }
- fclose(in);
- fclose(out);
Объяснение кода листинга программы
FILE *in;
- объявление переменной типаFILE*
для открытия файлаtest.txt
на чтениеFILE *out;
- объявление переменной типаFILE*
для открытия файлаdest.txt
на запись- Проверка на успешное открытие файла
test.txt
с помощью функцииfopen
. Если файл не удалось открыть, выводится сообщение об ошибкеcout<<
bug1;
и программа завершается с помощьюreturn 0;
. - Проверка на успешное открытие файла
dest.txt
с помощью функцииfopen
. Если файл не удалось открыть, выводится сообщение об ошибкеcout<<
Bug2;
и программа завершается с помощьюreturn 0;
. - Бесконечный цикл
while(true)
, который будет выполняться до тех пор, пока не достигнет конца файлаtest.txt
. - В каждой итерации цикла считывается один символ из файла
test.txt
с помощью функцииgetc(in)
. - Считанный символ записывается в файл
dest.txt
с помощью функцииputc(ch,out)
. - После достижения конца файла
test.txt
, закрываются файлыin
иout
с помощью функцииfclose
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д