lire à partir d'un flot ouvert - C++ - Programmation
Marsh Posté le 07-02-2009 à 21:50:55
le plus propre, c'est une expression régulière, regarde dans boost::regex par exemple.
Sinon, tu peux utiliser scanf ou sscanf, qui peut servir d'expression régulière primitive (du matching en vrai).
http://xrenault.developpez.com/tutoriels/c/scanf/
C'est vraiment pas propre et c'est même pas du C++ mais du C, mais il y a moyen de faire ça simplement. A toi de voir quel niveau de qualité tu dois atteindre.
De tête, et sans garantie, je dirais :
int j, m, a;
const char* buffer = ... // ton buffer qui contient par exemple "10/03/2009"
sscanf( buffer, "%d/%d/%d", &j, &m, &a );
A prendre si t'es à la bourre et que tu cherches pas un truc mieux. Sache que c'est crade et pas sécurité du tout, mais ça fait une ligne et t'as pas besoin de boost.
Hop j'entends déjà Taz et Joef hurler à raison que c'est crade, mais bon c'est juste pour te dépanner. Si t'as le temps, utilise boost.
Marsh Posté le 07-02-2009 à 22:05:52
boost::regex oui même si sscanf est moins merdique que scanf.
Marsh Posté le 07-02-2009 à 22:09:52
en effet, sscanf ne laisse pas du garbage dans son buffer, lui au moins. Il y a moyen de se servir de scanf de façon sûre, et il y a des exemples dans le lien ci dessus, mais ça devient vite verbeux et complexe.
Marsh Posté le 07-02-2009 à 22:12:07
En C, perso moi je fait un fgets puis sscanf meme sur stdin en fait ^^
Marsh Posté le 07-02-2009 à 16:57:35
BONJOUR
je doit lire un flot d'entrée provenant d'un fichier d'un fichier texte et je vient d'arriver a la lecture d'une date qui est dans le fichier texte sous le format jj/mm/aa et g fait une structure date ( jour , mois , année) mais je ne c pas comment arriver a les lire ( est ce que je lit caractere par caracter ( je ne c pa comment fair non plus) ou ya -t-il un autre moyen?)
Est ce que quelqu'un pourait m'aider merci d'avance