Проблема при копировании содержимого файла - C (СИ)
Формулировка задачи:
Доброго времени суток!
Помогите советом. Имеется два текстовых файла. Требуется скопировать содержимое одного в другой.
Вот код который меня изнюряет уже второй день:
Проблема такая. Копирование из текстового файла 1.txt в 2.txt происходит, но частично. Почему не получается скопировать содержимое полностью. У меня половина текстового файла урезается почему то и записывается в 2.txt. В чем проблема? Помогите советом..
Так же я пробовал такой код, но результат абсолютно такой же:
В чем может быть дело? Почему содержимое копируется не полностью?
FILE *out,*out1;
out=fopen("C:\\1.txt","r");
out1=fopen("c:\\2.txt","wt");
char *st[1000];
while(feof(out)==0)
{
fread(st,sizeof(out),sizeof(out),out);
fwrite(st,sizeof(out),sizeof(out),out1);
};
fclose(out);
fclose(out1);
}FILE *fp1,*fp2;
fp1 = fopen("1.txt","r");
fp2 = fopen("2.txt","w+");
const int size=256;
char mas[size];
size_t read;
while((read = fread(mas,1,size,fp1)) != 0)
{
fwrite(mas,1,read,fp2);
}
fclose(fp1);
fclose(fp2);Решение задачи: «Проблема при копировании содержимого файла»
textual
Листинг программы
FILE *fp1,*fp2;
fp1 = fopen("1.txt","rb");
fp2 = fopen("2.txt","wb");
const int size=256;
char mas[size];
size_t read;
while((read = fread(mas,sizeof(char),size,fp1)) != 0)
{
fwrite(mas,sizeof(char),read,fp2);
}
fclose(fp1);
fclose(fp2);
Объяснение кода листинга программы
- Объявляются две переменные типа FILE * — fp1 и fp2, которые будут использоваться для работы с файлами.
- С помощью функции fopen открывается файл
1.txtв режиме чтения (rb) и файл2.txtв режиме записи (wb). - Объявляется константа size равная 256.
- Создается массив типа char с именем mas размером 256 элементов.
- В цикле while с помощью функции fread считываются данные из файла
1.txtв массив mas. - В каждой итерации цикла считанные данные записываются в файл
2.txtс помощью функции fwrite. - После окончания цикла закрываются файлы fp1 и fp2 с помощью функции fclose.