Orlyn
Messages postés5Date d'inscriptionjeudi 24 mai 2007StatutMembreDernière intervention17 février 2008
-
16 févr. 2008 à 01:51
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 2009
-
17 févr. 2008 à 15:02
Bonjour,
Je viens de finir mon prog de gestion de liste d'attente avec des structures comme ceci :
struct Maillon {
int numero;
Maillon *suivant;
};
struct FileAttente {
Maillon *tete;
Maillon *queue;
};
On ajoute une personne en queue, on retire une personne en tete...
Maintenant je dois faire le meme prog mais avec des noms pour les personnes au lieu de numéros.
Donc remplacer "int numero" par "string nom" et mettre "using namespace std;" et enlever les .h des include .
J'ai tout bien modifié mais il me met 2 erreurs lors de la compilation :
error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >' (or there is no a
cceptable conversion)
error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> >' (or there is no a
cceptable conversion)
Les erreurs sont respectivement pour les lignes :
(nm est un pointeur de type Maillon)
cin>>(*nm).nom;
cout<<endl<<"La personne en tete de file est monsieur "<<(*(file.tete)).nom<<"."<<endl;
J'ai essayé de remplacer string par char (mon prog bien modifié pour les noms). Et la... magie! Plus d'erreurs! Ca doit donc venir de string.
Cela veut-il dire qu'on ne peut pas utiliser de string avec les pointeurs? Ou alors qu'il faut utiliser string differemment de char par exemple, ce que pense?
Si quelqu'un avait une idée du probleme ca m'aiderait beaucoup ;).
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 20133 16 févr. 2008 à 19:16
Salut ,
#include
#include <string>
using namespace std;
void main()
{
string* s = new string;
cin>>*s;
cout<<"La chaine entree est : "<<*s<<endl;
delete s;
}
un exemple d'utilisation de tes pointeurs strings, verifies bien ton code surtout les includes , ou poste les et on te trouvera l'erreur ( ou l'omission).
je suis heureux de faire partie d'une grande famille ...!
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 17 févr. 2008 à 15:02
Un pointeur t'obligera à faire un appel à new et à delete en plus.
Déjà qu'utiliser des string, c'est loin d'être ce qu'il y a de plus rapide, pourquoi alourdir davantage le code avec des allocations dynamiques en plus.
D'autant plus que, ici, c'est complètement inutile.