Bonjour, je cherche à écrire un programme qui copierait un fichier assez lourd. Si j'utilise un seul char* le programme crache donc j'ai fait une boulce, mais le problème c'est que les fichier font pas exactement la même taille au final et je comprend pas pourquoi.(même si le mp3 marche)
Si quelqu'un pouvait m'aider j'en serais reconnaissant. Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #include <fstream> #include <iostream> #include <windows.h> using namespace std; int main(int argc, char** argv) { fstream fichier("a.mp3", ios::in |ios::out | ios::binary); fstream fichier2("b.mp3", ios::in |ios::out | ios::binary | ios::trunc); if(fichier) { fichier.seekg(0, ios::end); int size = fichier.tellg(); fichier.seekg(0, ios::beg); int i= size/5000; int r= size%5000; int j=0; while(j<=i) { char contenu[5000]; fichier.read(contenu, 5000); fichier2.write(contenu, 5000); j++; } if(r!=0) { char contenu[r]; fichier.read(contenu, r); fichier2.write(contenu, r); } fichier.close(); fichier2.close(); } else cerr << "Error: " << strerror(errno); Sleep(5000); return 0; }
Partager