Bonsoir,
j'ai un probleme concernant les ifstream...
J'ai deux fichiers contenant des informations que je veux comparer à la suite.
Ces informations sont de type int, et il y a environ plus de 400 000 int à comparer entre les deux fichiers.
J'ai essayé d'initialiser un tableau de 400 000 int, à 0, mais bloquage de l'executable.
J'ai en effet voulu tout lire un fichier dans un premier temps, et repertorier tout les int dans un premier tableau de taille 400 000.
De meme avec le deuxieme fichier, avec un second tableau de meme taille.
Apres cela, j'ai voulu comparer chacun leur tour, mais impossible car je n'ai pas reussi a créer les deux tableaux.
Les deux fichiers sont disposés exactement de la meme maniere. A savoir :
Par exemple :
(0,1,2,3)(4,5,6,7)(8,9,10,11) dans le premier fichier
(12,13,14,15)(16,17,18,19)(16,17,18,19) dans le second fichier
Je veux ainsi comparer 0 a 12, 1 a 13, etc.... 11 a 19.
J'ai pensé a une autre idée qui consistait d'y aller 1 par 1.
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
41
42
43
44
45 int tab0 = 0; int tab1 = 0; ifstream text0("fire1_frame_0.txt"); ifstream text1("fire1_frame_0.txt"); while ( !text0.eof() && !text1.eof() ) { text0 >> i0; text1 >> i1; if (text0.fail()) { text0.clear(); text0 >> c; } else { tab0=i0; } if (text1.fail()) { text1.clear(); text1 >> c; } else { tab1=i1; } // On va comparer les deux tableaux if ( abs(tab0-tab1 > seuil) ) { OK = 1; } else { OK = 0; } ofstream temporelle("temporelle.txt",ios::app); temporelle << OK; temporelle.close(); cout << "suivant..."<<endl; } // ferme le double while text0.close(); text1.close();
Cela marche bien, MAIS comme vous le savez, avec 400 000 comparaisons a faire cela est très long !!
Si vous pourriez m'aider a trouver l'erreur, ou proposer une autre solution...Je vous en serez reconnaissant, merci !!
Partager