Lecture fichier texte c++

Fermé
Greggygreg Messages postés 7 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 26 mai 2010 - 18 mai 2010 à 09:48
Greggygreg Messages postés 7 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 26 mai 2010 - 18 mai 2010 à 11:33
Bonjour, je code en c++, et j'ai un fichier de données en txt dont je voudrais extraire les informations.
Il est de la forme :

x y z dose

séparé par des tabulations, avec x, y et z des entier, et dose un double.
J'aurais besoin juste de récupérer les x,y et z, dans un tableau (matrice). J'ai essayé avec des fopen,et fscan, mais ça foire complètement, et les ifstream ne me les ressortait pas en entiers.

Quelqu'un aurait une idée s'il vous plait ?

merci

A voir également:

2 réponses

Salut,

Pourquoi ça "foire" ?
Pose du code !
0
Greggygreg Messages postés 7 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 26 mai 2010
18 mai 2010 à 10:24
 ifstream fichier("points_chauds.txt", ios::in);  // on ouvre en lecture
  string coor_vox[50][3];

    if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
      {
      int a=0;
      int b=0;
      bool continuer = true;      // indicateur de fin de fichier
      while( continuer ) {	
	string ch;              // chaine contenant une ligne du fichier
	fichier >> ch;	    // ranger une ligne dans ch
	if ( ch != "" )         // si la ligne n'est pas vide faire
	  {
	    cout << ch << endl;      //   afficher celle-ci
	    if (a!=3)
	      coor_vox[b][a]=ch;
	    else
	      b++;
	  }
	else                   // sinon
	  continuer = false;  //   sortir de la boucle de lecture
      
	for (int i=0;i<3;i++)
	  {for (int j=0;j<50;j++)
	      cout<<coor_vox[j][i]<<endl;
	  }
        std::string ligne; // variable contenant chaque ligne lue

        // cette boucle s'arrête dès qu'une erreur de lecture survient
       
      }}


En gros, ça me renvoie des caractères et pas des entiers...
0
Greggygreg Messages postés 7 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 26 mai 2010
18 mai 2010 à 10:27
ha oui, mon fichier de départ comporte 50 lignes (et 4 colonnes donc).
0
youscoul Messages postés 125 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 7 janvier 2013 4
18 mai 2010 à 11:10
Salut,

Pour lire exactement ce qui est ecrit dans ton fichier independanment de son type, tu dois utiliser fread(..........).

int tab[15];

fread(tab, 8*sizeof(int), fichier);
fread(&tab[9], sizeof(double), fichier);


Bon courage
0
Greggygreg Messages postés 7 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 26 mai 2010
18 mai 2010 à 11:33
ok, merci !
0