Переписать текст из одного файла в другой - 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. - Программа завершается.