C-style copy file

3 отговора 200 прегледа
#1

C-style copy file

Imam class s member FILE *record
V construktora otvarqm faila file_record i go asociiram s record;
V destruktura go zatvarqm.

Klasa ima metod koito obhojda durvo i pri dostigane na listo ot durvoto
zapisva mejdinni danni v file_record (vsi4ko ot korena do listoto).
Su6tata funkciq ima proverka za vuzmijno nai-dobro re6enie i trqbva da prehvurli teku6tite danni ot file_record v drug fail file_out koito 6te sudurja nai-dobroto re6enie do momenta.
Failovete sa v text mode

Problema mi e 4e ne moga da copiram file_record v file_out i ne moga da razbera za6to. Tova e fragment ot vuprosnata funkciq.

if(IsBestSolution()){

fflush(record);
fseek(record, 0, SEEK_SET);
int buflen = _filelength(_fileno(record));//file size in bytes
char* buf = new char[buflen];
fread(buf, buflen, 1, record);
FILE* out = fopen(FILE_OUT, "wt");
fwrite(buf, buflen, 1, out);
fclose(out);
delete [] buf;

}

rezultata e prazen fail s duljina buflen;
kude burkam ?

Отговор
в отговор на CObject #2

Re: C-style copy file

Ако сложиш брейкпоинт тук

FILE* out = fopen(FILE_OUT, "wt");

, какво е съдържанието на buf?

Отговор
в отговор на darklord #3

Re: C-style copy file

re6ih problema

v klasa bqh definiral:
FILE* record = fopen(FILE_RECORD, "w+t");

promenih go na:
FILE* record = fopen(FILE_RECORD, "w+rt");
i stana

Отговор
в отговор на CObject #4

Re: C-style copy file

Пробвай "wb", не "wt".

Отговор