Lecture d'un fichier texte

Lecture d'un fichier texte - C++ - Programmation

Marsh Posté le 13-01-2016 à 10:17:26    

Bonjour,
 
 Pourriez-vous m'aider à avancer sur mon code ? Je souhaiterai lire une ligne dans un fichier texte  :
 

Code :
  1. Classe       1   2^Thierry         S   P^Anna         P^Jean    S   P


 
et je veux stocker ces données dans une matrice sous cette forme :
 
Resultat de la matrice souhaitée :
 
                  1  2
Thierry         S  P
Anna            P
Jean            S  P
 
A noter que le nombre de colonnes de la matrice n'est pas statique (il est déduit de la ligne lu, dans cet exemple on a deux colonnes (1 et 2)). Le nombre de lignes également n'est pas statique, on peut trouver plusieurs prénoms allant de 1 jusque n.
La première cellule de la matrice est vide (elle doit contenir le nombre de caractères calculé après le mot classe.
La première ligne est constituée d’espaces, puis des nombres croissants Ni, en commençant par 1 et incrémentés de 1 jusque C-1.
Tant qu’il existe des espaces après le nombre Ni, on appelle « Ti » le nombre d’espaces après le nombre Ni. Si Ti est non nul, on lui ajoute le nombre de chiffres
présent dans le nombre Ni.
 
J'ai commencé avec ce bout de code :
 

Code :
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <limits> 
  5. using namespace std;
  6. string matrice[1000][1000];
  7. int main()
  8. {
  9.     int i,j;
  10.     string chaine1,T_initial;
  11.     int N_1;
  12.     string line1;
  13.     ifstream fichier("exo.txt", ios::in);
  14.     i=0;
  15.     if(!fichier.fail())
  16.     {
  17.         fichier>>chaine1;
  18.         std::string ligne;
  19. //        while(std::getline(fichier, ligne))
  20. //        {
  21. //            if(i == 0 ) // the first line
  22. //                {
  23.                    matrice[0][0]=chaine1;
  24.                    cerr << " la premiere cellule contient = " << matrice[0][0] << endl;
  25. //                    }
  26. //                    i++;
  27. //                    if (i>1) // other lines
  28. //                     {
  29. //                        //std::cout << ligne << std::endl;
  30. //                    }
  31. //
  32. //
  33. //            }
  34.             cerr << "\n";
  35.             fichier.seekg(0, ios::beg);
  36.             if((int)fichier.tellg() != 0)
  37.             {
  38.                     fichier.clear();
  39.                     fichier.seekg(0, ios::beg);
  40.             }
  41.             int nbLignes = 0;
  42.             while(fichier.ignore(numeric_limits<int>::max(), '\n'))
  43.                     nbLignes++;
  44.             cout << "The file contains " << nbLignes << " lines " << endl;
  45.             for (i=0; i<nbLignes;i++)
  46.             {
  47.                 cerr << " Line number = " << i << endl;
  48.             }
  49.             fichier.close();
  50.         }
  51.         else
  52.                 cerr << "Impossible d'ouvrir le fichier !" << endl;
  53.         return 0;
  54. }

Reply

Marsh Posté le 13-01-2016 à 10:17:26   

Reply

Marsh Posté le 25-01-2016 à 14:29:42    

chopper une librairie qu le fait ce serait pas plus simple ?


---------------
... ma tête est malade -  "Est-ce que ce bruit dans ma tête te dérange?"
Reply

Marsh Posté le 25-01-2016 à 14:31:30    

Arf j'avais lu de travers tu veux un code pour cet exemple specifiquement ?


---------------
... ma tête est malade -  "Est-ce que ce bruit dans ma tête te dérange?"
Reply

Marsh Posté le 25-01-2016 à 14:32:53    

exactement :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed