05. juni 2000 - 15:09
Der er
2 kommentarer og 1 løsning
kopi af fil
Jeg skal læse binært og skrive til en fil. Altså kopiere en fil: Følgende virker ikke, men hvordan gør man så? ifstream indfil; indfil.setf(ios::binary); indfil.open("test.mp3"); ofstream udfil; udfil.setf(ios::binary); udfil.open("test2.mp3"); unsigned char ch; indfil.get(ch); while(indfil) { udfil.put(ch); indfil.get(ch); } indfil.close(); udfil.close();
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Jeg fandt lige noget jeg har lavet engang for længe siden: bool CopyFile(char* Source, char* Dest) { FILE* fSource; FILE* fDest; fSource=fopen(Source, "rb"); if (!Source) return false; fDest=fopen(Dest, "wb"); if (fDest==NULL) { fclose(fSource); return false; } fseek(fSource, 0, SEEK_SET); fseek(fDest, 0, SEEK_SET); char Buffer[2048]; int BytesRead=fread(Buffer, 1, 2048, fSource); fwrite(Buffer, 1, BytesRead, fDest); while (BytesRead==2048) { BytesRead=fread(Buffer, 1, 2048, fSource); fwrite(Buffer, 1, BytesRead, fDest); } // END while more blocks to read fclose(fDest); fclose(fSource); return true; } // END boolean function CopyFile DMK
Ja jeg kigget lige i help i borland og fandt også fwrite, fread. Kigger på det: Havde lavet det her indtil videre, virker heller ikker FILE *udfil; udfil = fopen("test2.mp3", "w"); FILE *indfil; indfil = fopen("test.mp3", "r"); unsigned char X [10]; while (fread (X, 1, 1, indfil)!=0) fwrite (X, 1, 1, udfil); fclose(indfil); fclose(udfil); Giver point nå jeg har testet dit!
Nej, for du læser filerne som tekst, dvs. strenge adskildt af CR+LF. Du skal tilføje 'b' i dine modes: "wb" og "rb" for at læse dem binært. (Tekstmode vil også stoppe på CTRL+Z selvom der rent faktisk er flere tegn i filen.)
Kurser inden for grundlæggende programmering