Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Копинг файла!

558
10 февраля 2003 года
_ReZzZ_
14 / / 20.08.2000
Помогите, плз с кодом; По задумке должен копить файл, но копит тока 1KB. Хелп!!! В чём баг?


FILE* from;
FILE* to;
byte buf[1023];
LPSTR from_str="C:\\Prog1.exe";
LPSTR to_str="C:\\Prog2.exe";

from=fopen(from_str,"r");
to=fopen(to_str,"w");

while(!feof(from))
{
fread(buf,sizeof(buf),1,from);
fwrite(buf,sizeof(buf),1,to);
}

fclose(to);
380
11 февраля 2003 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by _ReZzZ_
Помогите, плз с кодом; По задумке должен копить файл, но копит тока 1KB. Хелп!!! В чём баг?


ну сразу бросаеться в глаза:
Глюк 1:

while(!feof(from))
{
size_t nLen = fread(buf,sizeof(buf),1,from);
// в nLen - сколько байт РЕАЛЬНО прочитано,
// например у тя файл размером 53 байта, но
// твоя ошибка в программе приведёт к тому что
// у тя в Prog2.exe будет 1023 байта.
fwrite(buf,nLen,1,to);
}


2. ну и на закуску:

// закрывай все файлы
fclose(to);
fclose(from);



может есть и ещё чё-нить :)) ищи сам

558
12 февраля 2003 года
_ReZzZ_
14 / / 20.08.2000
Да, я уж сам нашёл баг :) Читать и писать надо в бинарном виде т.е. не fopen("prog1.exe","w"), a fopen("prog1.exe","wb"); а по поводу разбухания файла, так он и толстым будет пахать; он имеет свой код, а что дальше ему пофиг :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог