lire à partir d'un flot ouvert

lire à partir d'un flot ouvert - C++ - Programmation

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  

Reply

Marsh Posté le 07-02-2009 à 16:57:35   

Reply

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.


Message édité par jesus_christ le 07-02-2009 à 21:51:44
Reply

Marsh Posté le 07-02-2009 à 22:05:52    

boost::regex oui même si sscanf est moins merdique que scanf.

Reply

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.

Reply

Marsh Posté le 07-02-2009 à 22:12:07    

En C, perso moi je fait un fgets puis sscanf meme sur stdin en fait ^^

Reply

Marsh Posté le 07-02-2009 à 22:22:30    

dacor  merci beaucoup de ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed