Getline + strtok
maximus
-
yanlou Messages postés 119 Statut Membre -
yanlou Messages postés 119 Statut Membre -
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
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
#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();
}
#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();
}