Vecteur avec int et char

Signaler
Messages postés
10
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
31 mars 2008
-
Messages postés
113
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
5 janvier 2004
-
int **bourse
main()
{
...
cin >> nombre;
for (unsigned int i=0;i<(nombre);++i)
bourse[i] = new int [5];
donc je crée autant de vecteurs bourse que l'indique la variable : nombre
j'aurais donc pour nombre = 1
bourse[0][0] = ...
bourse[0][1] = ...
bourse[0][2] = ...
bourse[0][3] = ...
bourse[0][4] = ...
ces 5 variables sont des int, mais j'aimerais que la première soir un string ou char
bourse[0][0] = ... //char
bourse[0][1] = ... // int
bourse[0][2] = ... // int
bourse[0][3] = ... // int
bourse[0][4] = ...// int
...
}

si qqn pouvait m'aider pour me dire comment déclarer cela...
merci d'avance,
Xavier

4 réponses

Messages postés
113
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
5 janvier 2004

Tu peux essayer un casting en int:
char s ='a';
bourse[0][0] = (int)s;

faudra que quand tu lises la valeur tu t'en souviennes.

A bientôt,
P-A
Messages postés
10
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
31 mars 2008

-------------------------------
Réponse au message :
-------------------------------

> Tu peux essayer un casting en int:
> char s ='a';
> bourse[0][0] = (int)s;
>
> faudra que quand tu lises la valeur tu t'en souviennes.
>
> A bientôt,
> P-A
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > int **bourse
> > main()
> > {
> > ...
> > cin >> nombre;
> > for (unsigned int i=0;i<(nombre);++i)
> > bourse[i] = new int [5];
> > donc je crée autant de vecteurs bourse que l'indique la variable : nombre
> > j'aurais donc pour nombre = 1
> > bourse[0][0] = ...
> > bourse[0][1] = ...
> > bourse[0][2] = ...
> > bourse[0][3] = ...
> > bourse[0][4] = ...
> > ces 5 variables sont des int, mais j'aimerais que la première soir un string ou char
> > bourse[0][0] = ... //char
> > bourse[0][1] = ... // int
> > bourse[0][2] = ... // int
> > bourse[0][3] = ... // int
> > bourse[0][4] = ...// int
> > ...
> > }
> >
> >
> > si qqn pouvait m'aider pour me dire comment déclarer cela...
> > merci d'avance,
> > Xavier
>
Messages postés
10
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
31 mars 2008

Bhen c'est ce que je fais là, en multipliant par 1000 pour que chaque caractère reste isolé, pask'en fait ce bourse[0][0] se rempli à la lecture d'un fichier txt :

c=fgetc(fichier);
bourse[i][j] = (1000 * bourse[i][j]) + int(c);

et à la lecture je dois également l'afficher comme une chaine de caractères.
MAIS je suis obligié de le laisser dans la matrice avec les différents bourses, et les autres DOIVENT être des int.

mon problème est-il tout simplement insolvable et je devrais trouver un autre système ?

le plus 'simple', si c'était possible serait de définir bourse[0][0] comme un char[20] une fonction renew ou qqch comme ca n'existe-t-elle pas ?
Messages postés
113
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
5 janvier 2004

Je saisis pas pq le *1000 mais bon.

J'ai peut être une autre idée:
créer une classe (ou struct)

class A
{
public:
char car;
int tab[x]; // correspond à la 2° dim de bourse -1 pour le char
};

A bourse[y] // 1° dim de ton bourse

for(...)
{
bourse[i].car = c;
for(...)
bourse[i].tab[j] = c;
}

ou un truc comme ca.
tu saisis l'idée?
A bientôt,
P-A