à l'aide pour fusioné la fonction getline + fct strtok

Résolu
yanlou
Messages postés
119
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
11 août 2010
- 4 juil. 2008 à 12:26
yanlou
Messages postés
119
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
11 août 2010
- 4 juil. 2008 à 15:51
salut,
voici mon problmé, je veux lire un fichier txt, je le fais avec la fonction getline. voici le code :

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


int main()
{
    // le constructeur de ifstream permet d'ouvrir un fichier en lecture
    std::ifstream fichier( "strtok esséye.txt" );


    if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
    {
        std::string ligne; // variable contenant chaque ligne lue


        // cette boucle s'arrête dès qu'une erreur de lecture survient
        while ( std::getline( fichier, ligne ) )
        {
            // afficher la ligne à l'écran
            std::cout << ligne << std::endl;
        }
    }
}

le fichier que je lis contient des chaine de caractére comme suit :
123à12123
1à143
123à2352

et j'ai la fonction strtok qui m'enléve le caractére "à" et qui m'afiche seulement les chiffre, dans le code est

#include
#include <stdlib.h>
#include <string.h>
main ( )
{
char *pointeur;
char *separateur = { "à" };
char  *buffer;
char    *Chaine_Entrante="2063à2093";
 
buffer = strdup ( Chaine_Entrante );


pointeur = strtok( buffer, separateur  );
cout<<"\n CIC : "<< pointeur;
    
while( pointeur != NULL )
{
pointeur = strtok( NULL, separateur  );
if ( pointeur != NULL )
{
cout<<"\n CIC : "<


maximus

4 réponses

BunoCS
Messages postés
15277
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 juillet 2022
103
4 juil. 2008 à 14:13
Et ben? Tu ne vois vraiment pas?
Bon, on récapitule:
- tu as un code qui, à chaque itération, affiche une ligne d'un fichier
- tu as un code qui récupère des chiffres dans une chaine de caractères
Si tu mets l'action de la 2e phrase dans la 1ère, tu obtiens quoi?

Tu vois ce que je sous-entend?
Bien sûr, il y a une petite conversion de données à faire...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
3
yanlou
Messages postés
119
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
11 août 2010

4 juil. 2008 à 14:38
merçi pour la réponse mais je comprend ce que vous dite, le probléme c'st que je n'arrive pas a récupèré les chiffres à partir des ligne de mon fichier txt !!




maximus
3
BunoCS
Messages postés
15277
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 juillet 2022
103
4 juil. 2008 à 15:35
Bon, ok.
J'avais un peu de temps devant moi, j'ai donc écrit le code suivant

#include <string>
#include <fstream>
#include
using namespace std;
int main()
{
    // le constructeur de ifstream permet d'ouvrir un fichier en lecture
    ifstream fichier("test.txt");

    if (fichier) // ce test échoue si le fichier n'est pas ouvert
    {
        string ligne; // variable contenant chaque ligne lue

        // cette boucle s'arrête dès qu'une erreur de lecture survient
        while (getline(fichier,ligne))
        {
            // afficher la ligne à l'écran
            cout << ligne << endl;

            // Récupération de la position du séparateur
            size_t pos=ligne.find_first_of("à");

            // la sous-chaine de gauche donne le 1er entier
            int a=atoi(ligne.substr(0,pos).data());

            // la sous-chaine de droite, le second
            int b=atoi(ligne.substr(pos+1).data());

            // Affichage du résultat
            cout << a << "  " << b << endl;
        }
    }

    fichier.close();
}

A noter que:
- "à123" retourne "0  123"

- "123à" retourne "123  0"

- "123" retourne "123  123"



- "à" retourne "0  0"

ça te va?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
3
yanlou
Messages postés
119
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
11 août 2010

4 juil. 2008 à 15:51
merçi pour votre aidé, je vous suis reconnaissent
maximus
3