Grave probl�me de lecture de tableau string
Bonjour � tous,
Le code suivant ne fonctionne pas (BCB C++) :
Code:
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.