Afficher un message
Vieux 09/04/2008, 22h25   #4
Michel Decima
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Probleme avec istringstream

James Kanze a écrit :

> Rien. Ta chaîne commence bien par un nombre hexadécimal qui a la
> valeur 14. Si tu veux vérifer que c'est tout ce qu'il
> contient :
>
> if ( iss >> std::hex >> tmp >> std::ws
> && iss.get() == EOF ) {
> // c'est bon
> }
>
> Attention, en revanche. J'ai déjà rencontré des manipulateur
> std::ws qui positionnait failbit s'il était déjà à la fin (parce
> qu'il construisait un istream::sentry avant de commencer à
> lire), bien qu'un manipulateur ne doit jamais positionner
> failbit.


Le manipulateur ne peut pas positionner failbit, mais est-ce qu'il
peut positionner eofbit ? Je dis ca parce que pour du code similaire
a celui ci-dessus, j'ai l'habitude de tester eof() plutot que le
resultat de get():

if ( iss >> std::hex >> tmp >> std::ws
&& iss.eof() ) {
// c'est bon
}

Ca marche au moins avec g++, mais pour les autres ?

MD.


  Réponse avec citation
 
Page generated in 0,04583 seconds with 9 queries