OVH Cloud OVH Cloud

Equivalent de fscanf?

4 réponses
Avatar
NIG
Bonjour,
Débutant la programation en C++ mais ayant des connaissances en C, je me
suis heurté au problème suivant : je souhaite scanner une chaine de 4
caractères dans un fichier.
En C, ça ressemble à :

...
FILE *fichier;
char chaine[4];
...
fscanf (fichier, "%s", chaine);
...

Mais en C++??? Je n'ai toujours pas trouvé la solution! Si quelqu'un a le
courage de répondre à cette question, je lui en serait reconnaissant :)

4 réponses

Avatar
NIG
OK,
J'ai trouvé, en rajoutant #include<cstdio>


"NIG" a écrit dans le message de news:
3ffb3586$0$1158$
Bonjour,
Débutant la programation en C++ mais ayant des connaissances en C, je me
suis heurté au problème suivant : je souhaite scanner une chaine de 4
caractères dans un fichier.
En C, ça ressemble à :

...
FILE *fichier;
char chaine[4];
...
fscanf (fichier, "%s", chaine);
...

Mais en C++??? Je n'ai toujours pas trouvé la solution! Si quelqu'un a le
courage de répondre à cette question, je lui en serait reconnaissant :)





Avatar
Benoit Dejean
Le Tue, 06 Jan 2004 23:54:20 +0100, NIG a écrit :

OK,
J'ai trouvé, en rajoutant #include<cstdio>


tu fais fausse route, c'est là du C avec ses défauts
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie

Avatar
Fabien LE LEZ
On Wed, 07 Jan 2004 08:05:50 +0100, Benoit Dejean
wrote:

J'ai trouvé, en rajoutant #include<cstdio>


tu fais fausse route, c'est là du C avec ses défauts


<troll> Meuh non c'est pas du C, tout est dans std:: ! </troll> ;-)


--
;-)

http://www.gotw.ca/gotw/063.htm
http://www.gotw.ca/gotw/067.htm#2


Avatar
kanze
"NIG" wrote in message
news:<3ffb3586$0$1158$...

Débutant la programation en C++ mais ayant des connaissances en C, je
me suis heurté au problème suivant : je souhaite scanner une chaine de
4 caractères dans un fichier.

En C, ça ressemble à :

...
FILE *fichier;
char chaine[4];
...
fscanf (fichier, "%s", chaine);
...


En C, ça c'est une récette d'un core dump, ou d'autre comportement
indéfini.

Mais en C++???

Je n'ai toujours pas trouvé la solution! Si quelqu'un a le courage de
répondre à cette question, je lui en serait reconnaissant :)


En C++ :

std::ifstream fichier ;
std::string chaine ;
// ...
fichier >> chaine ;

Avec l'avantage par rapport à ta solution C que ça marche.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16