Bonjour � tous,

Le code suivant ne fonctionne pas (BCB C++) :

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
 
#include <vcl.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <cstring.h>
#include <iostream.h>
#pragma hdrstop
 
 
#pragma argsused
int main(int argc, char* argv[])
{
 
//vecteurs d'entrée 
int const n = 50;
string InputVector[n] = {"0", "1e-3", "2e-5", "4e-3", "7e-7", "6e-4",
"1", "4e-3", "66e-5", "43e-3", "78e-7","12e-4","2", "2e-3", "10e-5", "20e-3", "90e-7", "70e-4"};
 
//vecteur de sortie
string OutputVector_1[6];
string OutputVector_2[6];
string OutputVector_3[6];
 
string CuVa = "";
 
	int p = -1;
	int r = 0;
 
//lecture du vecteur d'entrée
 
		for (int i=0; i <= n-1; i++)
		{
 
				CuVa = InputVector[i];
 
				cout << CuVa << "\t";
 
				if (CuVa == "0" || CuVa == "1" || CuVa == "2")
				{
				p++;
				r = 0;
				}
 
				if (p==0)
				OutputVector_1[r] = CuVa;
				if (p==1)
				OutputVector_2[r] = CuVa;
				if (p==2)
				OutputVector_3[r] = CuVa;
 
 
				r++;
 
 
		}
 
		// ecriture matricielle du vecteur de sortie
 
		int j = 0;
		for (int i=0; i <= p; i++)
		{
			j = 0;
			while(j <= 6)
			{
 
				if (i==0)
				{
				ShowMessage("val 1");
				CuVa = OutputVector_1[j];
				cout << CuVa;
 
				}
				if (i==1)
				{
				ShowMessage("val 2");
				CuVa = OutputVector_2[j];
				cout << CuVa;
				}
				if (i==2)
				{
				ShowMessage("val 3");
				CuVa = OutputVector_3[j];
				cout << CuVa;
				}
 
			 //cout << CuVa;
 
			 if (j != 6	)
			 cout << "\t";
			 else
			 cout << "\n";
 
			 j++;
			}
 
 
getch();
 
}
Ce code permet d'effectuer la chose suivante. Etant donn� un vecteur string d'entr�e qui contient un certain nombre d'�l�ments dont les �l�ments "0" "1" et "2", le but est de pouvoir classer ce vecteur dans trois vecteurs de sortie tel que chaque vecteur de sortie commence par l'un des �l�ments "0" "1" et "2".
Le probl�me est que la s�quence de restitution des donn�es "class�es" ne fonctionne pas puisque les �l�ments restitu�s sont tous inexistants. On a en effet la sortie suivante :

0 1e-3 2e-5 4e-3 7e-7 6e-4 1 4e-3 66e-5 43e-3 78e-7 12e-4 2 2e-3 10e-5 20e-3 90e-7 70e-4

pour le premier cout - tout a fait normal puisque l'on relit le vecteur d'entr�e - et seulement :

2 2e-3 10e-5 20e-3 90e-7 70e-4

pour la suite, alors que l'on devrait avoir :

0 1e-3 2e-5 4e-3 7e-7 6e-4
1 4e-3 66e-5 43e-3 78e-7 12e-4
2 2e-3 10e-5 20e-3 90e-7 70e-4

Gr�ce au ShowMessage, il est possible de v�rifier que les trois vecteurs de sortie sont lus.

C'est certainement une erreur bidon, mais je ne vois pas du tout o� elle pourrait �tre.

Je vous remercie pour votre aide.