Urgent pb C++

Fermé
riri - 22 juin 2004 à 10:40
 riri - 22 juin 2004 à 13:57
j'ai un soucis avec mon code

mon .h
const int NB_WARNING = 14
std::string _errorLevel[NB_WARNING]

mon .c

....
for (int i=0;i<NB_WARNING;i++){
if ((_errorLevel[i]).length() == 0) {
_errorLevel[i]="test";
cout << i << _errorLevel[i];
}
}

le probleme c'est que mon tableau est toujours vide meme apres l'affectation
pourquoi ?

6 réponses

grdTonioHardware Messages postés 43 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 22 avril 2007 12
22 juin 2004 à 10:48
c koi ce std:: qui traine ???
en plus si t'utilise la classe string je te conseil de faire un new.
sinon utilise le char * ca passe mieux.

Bonne prog !!
@++ !!!
0
marvinrouge
22 juin 2004 à 10:50
supprime ça à mon avis:

if ((_errorLevel[i]).length() == 0) {
0
le test est bon je passe dans la boucle
0
si je mets :

_errorLevel[i]=new string("test");

cela ne compile
pas
0
grdTonioHardware Messages postés 43 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 22 avril 2007 12
22 juin 2004 à 11:02
Faut mettre un S majuscule et aussi faire #include "string.h"
0
riri > grdTonioHardware Messages postés 43 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 22 avril 2007
22 juin 2004 à 11:10
j'ai deja un include mais de ce type
#include <string>

et dans ce programme tout les string sont utilise avec un petit s
les varialbles sont declarees
string toto;
toto = "coucou";
et il n'y a pas de probleme
0
grdTonioHardware Messages postés 43 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 22 avril 2007 12 > riri
22 juin 2004 à 11:17
ok c quoi l'erreur exacte.

sinon tu utilise les listes de la STL pour faire ton tableau ( doublement chaîné c'est mieux ).
0
Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215 > grdTonioHardware Messages postés 43 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 22 avril 2007
22 juin 2004 à 11:22
le S majuscule c est pas plutot en java ;-)
0
Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
22 juin 2004 à 11:19
string _errorLevel[i]=new string("test");
0
marvinrouge
22 juin 2004 à 11:23
normal

string _errorLevel[i]= // attend un objet de type string

new string("test"); // est un string* (pointeur sur un objet de type string)

donc soit tu écrit

string _errorLevel[i]=string("test");

soit tu changes

1) std::string _errorLevel[NB_WARNING]
en
std::string* _errorLevel[NB_WARNING]
2)cout << i << _errorLevel[i];
en
cout << i << (*_errorLevel[i]);
3) à la fin du prg tu détruit les objets alloués avec new comme c
ceci:
for (int i=0;i<NB_WARNING;i++)
if (_errorLevel[i]!=NULL) {
delete _errorLevel[i];
0
riri > marvinrouge
22 juin 2004 à 11:43
j'ai essaye ca change rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci a tous pour votre aide

le code etait bon mais ma methode de trace n'acceptait par les string mais uniquement les char *
on ne voyais rien a la compil ...
0
merci a tous pour votre aide

le code etait bon mais ma methode de trace n'acceptait par les string mais uniquement les char *
on ne voyais rien a la compil ...
0