Getline + strtok

Fermé
maximus - 4 juil. 2008 à 15:17
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 - 4 juil. 2008 à 16:10
Bonjour,
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 <iostream>

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 <iostream.h>
#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 : "<<pointeur<<"\n";
}
}

return 0 ;
}


ma question est: est ce que vous pouvez m'aidé pour que je lis mon fichier txt ligne par ligne et que j'obtient seulement les chifre sans le caractére "à"

j'espére que j'été claire pour ma question
merçi pour votre aide

1 réponse

yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 13
4 juil. 2008 à 16:10
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main()
{

ifstream fichier("strtok esséye.txt");

if (fichier)
{
string ligne;


while (getline(fichier,ligne))
{

/* cout << ligne << endl; */


size_t pos=ligne.find_first_of("à");


int a=atoi(ligne.substr(0,pos).data());


int b=atoi(ligne.substr(pos+1).data());


cout << a << " " << b << endl;
}
}

fichier.close();
}
1