moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 2011
-
27 déc. 2010 à 12:08
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 2011
-
8 janv. 2011 à 19:02
Bonjour.
Voici mon problème : j'ai un fichier texte à plusieurs lignes. Je souhaite les lire ligne par ligne j'utilise donc une boucle et la fonction getline pour récupérer chaque ligne.
Je me retrouve donc avec chaque ligne stockée dans une chaine de caractères.
Ma question est alors comment lire les variables de cette chaine de caractères?
Je pense qu'il faut la convertir en flux pour pouvoir réaliser quelque chose du genre :
ligne1>>entier1>>mot1;
Ou alors fais-je erreur dès le début en utilisant la fonction getline?
Merci d'avance de votre aide.
----------------------------------------------
Thiméo Soutien Scolaire : logiciel de soutien scolaire libre et gratuit
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 28 déc. 2010 à 11:37
Tu as mal lu : le problème de Mornaloce comprenait 2 mots par ligne
Mais bon, le principe reste le même...
En C++, tu as la fonction ifstream::getline() te permettant de lire une ligne dans un char*
Après, un coup de strtok pour séparer suivant les espaces...
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 201110 8 janv. 2011 à 19:02
Désolé pour le temps de réponse.
Et merci de ton aide qui m'a permis de réaliser ce que je voulais. Pour ce que ça interesserait :
//ouverture du fichier
ifstream SFichier("test.txt");
//recupération de la première ligne
char phrase[250];
SFichier.getline(phrase,250);
char *buff;
buff=strtok(phrase," ");
while(buff!=NULL)
{
cout<<buff<<endl;
buff=strtok(NULL," ");
}
Cela permet de sortir tout les mots (suite de lettres terminée par un espace).Il suffit ensuite de les convertir dans le type de variable souhaité (atoi(), atof()...). De plus ici je ne lis que la première ligne, il faudrait ensuite boucler sur toutes les lignes
Encore merci.
----------------------------------------------
[www.thimeo.byethost15.com Thiméo Soutien Scolaire] : logiciel de soutien scolaire libre et gratuit
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 201110 28 déc. 2010 à 10:11
Merci pour ton aide,
Déjà désolé, j'ai posté dans la rubrique C mais je suis aussi intéressé par un code C++.
Le sujet que tu m'as montré ne traite que des chaines de caractères et il n'y a qu'un mot par ligne. J'avais réussi à traiter ce cas mais je n'arrive pas à récupérer tous les mots d'un fichier texte de ce type :