Surcharge operateur de flux >> en c++

cs_kawito Messages postés 24 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 13 décembre 2005 - 10 mars 2004 à 16:15
cs_assoul Messages postés 4 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 28 décembre 2008 - 28 déc. 2008 à 11:03
bonjour,

je realise une classe Chaine en c++, et j'aimerais savoir comment surcharger l'operateur >>

friend istream& operator>>(istream& i, Chaine& s)
{
char buf[1024] ;
i >> buf ;
s = buf ;
return i ;
}

ce qui me plait pas dans cette exemple c'est qu'il y a un buffer de 1024 de declaré, que ce passerais t'il si le istream est plus grand ?
c'est pas tres prope ?
comment calculer la longueur du istream afin d'allouer juste ce qu'il faut avec un new ?

kawito
A voir également:

2 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 mars 2004 à 18:48
voila peut etre une solution:

istream& operator>>(istream& in, Chaine& s)
{
char ch = 0;
in.get(ch);
while(in)
{
s += ch;
in.get(ch);
}
return in;
}

suppose que tu as surchargé l'opérateur += pour Chaine
0
cs_assoul Messages postés 4 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 28 décembre 2008
28 déc. 2008 à 11:03
Merci beaucoup!
Je teste tout de suite
0
Rejoignez-nous