Bonjour, Voilà un petit problème qui ne concerne pas directement qt, mais comme je suis en plein dans qt, sait-on jamais que le problème puisse également venir de là ^^. Je voulais savoir si l'on pouvait lire et transférer les données d'un fichier texte vers un tableau au départ d'un constructeur.
J'ai en effet créé une boucle qui fonctionne dans un code test : J'ai un fichier texte comportant que des double hormis un séparateur "|" entre chaque série de donnée.
Le fichier à lire:
le fichier test qui fonctionne8.1 171 34.2 39.4 4.07 5.08 15.9 5.79 9.2 1.24 23.7 1.20 0.35 | 16.7 349.2 72.76 83.01 4.06 7.56 133.8 26.76 41.14 2.51 35.06 5.24 2.58 | 20.4 449.5 89.91 104.2 4.16 9.04 167.3 33.45 51.42 2.53 40.06 9.25 3.38 | 41.8 1143 190.4 235.8 4.63 18.04 399.2 75.31 116.3 2.74 66.06 68.21 9.93 |
10.4 318 53.0 60.7 4.90 6.31 27.7 8.65 13.6 1.45 25.2 1.74 0.89 | 19.9 606.2 106.3 119.5 4.89 8.46 230.9 38.48 58.85 3.02 35.06 5.99 6.47 | 26.7 864.4 144.1 165.2 5.04 10.96 317.5 52.92 80.97 3.06 42.56 13.84 9.41 | 52.1 2018 288.2 350.6 5.51 21.15 702.8 111.6 171.6 3.25 68.56 91.66 24.79 |
12.9 541 77.3 88.3 5.74 7.64 44.9 12.3 19.3 1.65 26.7 2.45 1.98 | 24.7 1033 155.4 173.5 5.73 10.12 389.3 55.62 84.85 3.52 36.56 8.13 15.06 | 33.7 1509 215.6 245.4 5.93 13.08 549.7 78.52 119.8 3.58 45.06 20.06 22.48 | 63.2 3291 411.4 493.8 6.39 24.46 1144 156.8 240.5 3.77 71.06 120.0 54.33 |
15.8 869 109 124 6.58 9.66 68.3 16.7 26.1 1.84 30.3 3.60 3.96 | 30.4 1673 220.1 245.1 6.57 13.21 615.6 76.95 117.6 3.98 41.57 12.19 31.41 | 42.6 2492 311.5 354.0 6.78 17.59 889.2 111.2 170.0 4.05 51.57 31.24 47.94 | 76.2 5098 566.5 674.6 7.25 30.81 1759 211.9 325.5 4.26 77.57 162.4 108.1 |
18.8 1317 146 166 7.42 11.3 101 22.2 34.6 2.05 31.8 4.79 7.43 | 35.5 2510 293.6 324.9 7.45 14.47 924.6 102.7 156.5 4.52 42.57 14.80 60.21 | 51.2 3831 425.7 481.4 7.66 20.24 1363 151.4 231.0 4.57 54.07 42.16 93.75 | 88.9 7483 748.3 883.4 8.13 34.65 2580 277.4 425.2 4.77 80.07 203.3 199.3 |
22.4 1943 194 221 8.26 14.0 142 28.5 44.6 2.24 36.7 6.98 13.0 | 42.3 3692 388.6 429.5 8.28 18.08 1336 133.6 203.8 4.98 47.59 20.98 108.0 | 61.3 5696 569.6 642.5 8.54 24.83 2003 200.3 305.8 5.07 60.09 59.28 171.1 | 103 10640 967.4 1135 9.00 41.03 3651 354.5 543.2 5.27 86.09 259.4 346.3 |
26.2 2772 252 285 9.11 15.9 205 37.3 58.1 2.48 38.4 9.07 22.7 | 50.5 5410 515.2 568.5 9.17 20.67 1955 177.7 270.6 5.51 50.09 28.46 193.3 | 71.5 8091 735.5 827.0 9.43 27.92 2843 258.5 393.9 5.59 62.59 76.57 295.4 | 117 14600 1217 1419 9.89 45.31 5012 443.5 678.6 5.79 88.59 315.3 572.7 |
30.7 3892 324 367 9.97 19.1 284 47.3 73.9 2.69 43.4 12.9 37.4 | 60.3 7763 675.1 744.6 10.05 25.18 2769 230.7 351.7 6.00 56.10 41.55 328.5 | 83.2 11260 938.3 1053 10.31 33.23 3923 326.9 498.4 6.08 68.60 102.7 486.9 | 157 24290 1799 2117 11.03 60.07 8153 657.5 1006 6.39 106.6 627.9 1152 |
0 0 0 0 0 0 0 0 0 0 0 0 0 | 68.2 10450 836.4 919.8 10.97 28.76 3668 282.1 430.2 6.50 60.62 52.37 516.4 | 93.0 14920 1148 1283 11.22 37.59 5135 395.0 602.2 6.58 73.12 123.8 753.7 | 172 31310 2159 2524 11.94 66.89 10450 779.7 1192 6.90 111.1 719.0 1728 |
0 0 0 0 0 0 0 0 0 0 0 0 0 | 76.4 13670 1013 1112 11.86 31.74 4763 340.2 518.1 7.00 62.12 62.10 785.4 | 103 19270 1376 1534 12.11 41.09 6595 471.0 717.6 7.09 74.62 143.7 1130 | 189 39550 2551 2966 12.83 72.03 13160 914.1 1397 7.40 112.6 807.3 2520 |
42.2 8356 557 628 12.5 25.7 604 80.5 125 3.35 46.1 20.1 126 | 88.3 18260 1260 1383 12.74 37.28 6310 420.6 641.2 7.49 68.13 85.17 1200 | 117 25170 1678 1869 12.99 47.43 8563 570.9 870.1 7.58 80.63 185.0 1688 | 238 59200 3482 4078 13.98 90.53 19400 1252 1913 8.00 130.6 1408 4386 |
le constructeur qui bug:
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
46
47 #include <iostream> #include <fstream> using namespace std; int main() { double tabProfile[11][4][13]; ifstream fichier("donnees/IpeHe.txt",ios::in) ; if(fichier) { cerr << "donnée insérée"<< endl; double IPE1, IPE2, IPE3, IPE4, IPE5, IPE6, IPE7, IPE8, IPE9, IPE10, IPE11, IPE12, IPE13; string sepa; for (int h1(0);h1<=10;h1++) { for (int h2(0);h2<=3;h2++) { fichier >> IPE1 >> IPE2 >> IPE3 >> IPE4 >> IPE5 >> IPE6 >> IPE7 >> IPE8 >> IPE9 >> IPE10 >> IPE11 >> IPE12 >> IPE13 >> sepa; tabProfile[h1][h2][0]= IPE1; tabProfile[h1][h2][1]= IPE2; tabProfile[h1][h2][2]= IPE3; tabProfile[h1][h2][3]= IPE4; tabProfile[h1][h2][4]= IPE5; tabProfile[h1][h2][5]= IPE6; tabProfile[h1][h2][6]= IPE7; tabProfile[h1][h2][7]= IPE8; tabProfile[h1][h2][8]= IPE9; tabProfile[h1][h2][9]= IPE10; tabProfile[h1][h2][10]= IPE11; tabProfile[h1][h2][11]= IPE12; tabProfile[h1][h2][12]= IPE13; cout<<tabProfile[h1][h2][12]; cout<< "-"; } } fichier.close(); } else cerr << "Erreur à l'ouverture" << endl; return 0; }
Le compilateur compile sans probleme mais quand je veux accéder aux données de tabProfile à l'aide d'un accesseur, soit ce dernier me met que ça vaut 0, soit qu'il n'y a rien, soit au contraire un chiffre à la rien à voir.
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
46
47
48
49
50
51
52
53
54 #include <iostream> #include <fstream> #include <string> using namespace std; #include "Acier.h" Acier::Acier() { // 1- initiaisation du tableau des profilés ifstream fichier("donnees/IpeHe.txt",ios::in) ; if(fichier) { cerr << "donnée insérée"<< endl; double IPE1, IPE2, IPE3, IPE4, IPE5, IPE6, IPE7, IPE8, IPE9, IPE10, IPE11, IPE12, IPE13; string sepa; for (int h1(0);h1<=10;h1++) { for (int h2(0);h2<=3;h2++) { fichier >> IPE1 >> IPE2 >> IPE3 >> IPE4 >> IPE5 >> IPE6 >> IPE7 >> IPE8 >> IPE9 >> IPE10 >> IPE11 >> IPE12 >> IPE13 >> sepa; tabProfile[h1][h2][0]= IPE1; tabProfile[h1][h2][1]= IPE2; tabProfile[h1][h2][2]= IPE3; tabProfile[h1][h2][3]= IPE4; tabProfile[h1][h2][4]= IPE5; tabProfile[h1][h2][5]= IPE6; tabProfile[h1][h2][6]= IPE7; tabProfile[h1][h2][7]= IPE8; tabProfile[h1][h2][8]= IPE9; tabProfile[h1][h2][9]= IPE10; tabProfile[h1][h2][10]= IPE11; tabProfile[h1][h2][11]= IPE12; tabProfile[h1][h2][12]= IPE13; } } fichier.close(); } else cerr << "Erreur à l'ouverture" << endl; }
exemple:
tabProfile[0][0][0] donne:0
tabProfile[1][2][1] donne:nan
tabProfile[1][1][1] donne :00752677646597990214268129351581149300450528567736789343066212519888298601925118136264152243395706410518998590423351637660460312587536017111221628117725120824971544835631334404476113246316304828233085280602553539621390189261038286048639741874088338182161311989760.00
Si quelqu'un a une idée ^^
Partager