équivalent scanf en c++

Fermé
- - 30 mars 2008 à 19:33
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 31 mars 2008 à 20:52
Bonjour,
Y-a-t-il un équivalent c++ de la fonction scanf ?
Le but est de récupérer des nombres dans un string formaté, pour l'instant j'utilise :
scanf(txt.c_str(), "truc %ld bidule %ld machin", &m, &n);

mais ça fait pas vraiment gueule c++, en plus ça marche pas à tout les coups...

5 réponses

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
31 mars 2008 à 20:52
Personnellement je préfère scanf mais bon...

#include <conio.h>

#include <iostream>
#include <fstream>
#include <string>

#include <sstream>

int main( int argc, char *argv[])
{
	std::string		dummy;
	long double		ldValue1;
	long double		ldValue2;
	std::stringstream	ss;

	std::ifstream		file( "test.txt" );

	if ( file.is_open() )
	{
		ss << file.rdbuf();	// <- /!\ ici ça bourrine /!\

		while ( ss >> dummy >> ldValue1 >> dummy >> ldValue2 >> dummy )
			std::cout	<< "Value1 = " << ldValue1 << "\t"
				 	<< "Value2 = " << ldValue2 << std::endl;

		file.close();
	}

	getch();

	return 0;
}


Ce serait plus propre de le faire avec des ::std::getline à moins que le fichier ne soit pas trop gros.

M.
1