Extraction d'int à partir d'un flux

Signaler
Messages postés
11
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
19 novembre 2003
-
Messages postés
11
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
19 novembre 2003
-
slt,

Je veux surcharger l'operateur d'extraction de ma classe. La fonction reçoit un flux du type istream qui ressemble à ça :
"<nombre>a <nombre>b <nombre>c". <nombre> représentant un entier.

Comment extraire ces trois entiers et les placer chacun dans un variable différente?

Merci d'avance.

7 réponses

Messages postés
4
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
12 septembre 2003

Je pense que tu peux passer par un scanf :
int a,b,c;
scanf("%da%db%dc",&a, &b, &c);
Messages postés
11
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
19 novembre 2003

merci ça marche!
comment tu as fait pour trouver cette fonction? J'ai cherché partout, dans toutes les libraries y a rien.
Messages postés
4
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
12 septembre 2003

Je la connaissais tout simplement 8-) .
C'est un fonction qui vient du C.
Il faut inclure stdio.h pour l'utiliser.
Messages postés
11
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
19 novembre 2003

Il reste un problème : ce code ne lit pas les entiers négatifs.
Messages postés
4
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
12 septembre 2003

Essaie ça :
unsigned int a,b,c
...
Messages postés
11
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
19 novembre 2003

Finalement il est désastreux d'utiliser scanf dans une surcharge de l'opérateur d'insertion si vous avez dans l'idée de l'utiliser par la suite pour écrire dans un fichier. Je l'ai appris à mes dépends. Mieux vaut utiliser des fonctions beaucoup plus courantes comme getline.
Messages postés
11
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
19 novembre 2003

Oups c bien sûr de l'opérateur d'extraction dont je veux parler.