Bonjour,
Pourriez-vous m'aider à avancer sur mon code ? Je souhaiterai lire une ligne dans un fichier texte :
Code :
- 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 :
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <limits>
- using namespace std;
- string matrice[1000][1000];
- int main()
- {
- int i,j;
- string chaine1,T_initial;
- int N_1;
- string line1;
- ifstream fichier("exo.txt", ios::in);
- i=0;
- if(!fichier.fail())
- {
- fichier>>chaine1;
- std::string ligne;
- // while(std::getline(fichier, ligne))
- // {
- // if(i == 0 ) // the first line
- // {
- matrice[0][0]=chaine1;
- cerr << " la premiere cellule contient = " << matrice[0][0] << endl;
- // }
- // i++;
- // if (i>1) // other lines
- // {
- // //std::cout << ligne << std::endl;
- // }
- //
- //
- // }
- cerr << "\n";
- fichier.seekg(0, ios::beg);
- if((int)fichier.tellg() != 0)
- {
- fichier.clear();
- fichier.seekg(0, ios::beg);
- }
- int nbLignes = 0;
- while(fichier.ignore(numeric_limits<int>::max(), '\n'))
- nbLignes++;
- cout << "The file contains " << nbLignes << " lines " << endl;
- for (i=0; i<nbLignes;i++)
- {
- cerr << " Line number = " << i << endl;
- }
- fichier.close();
- }
- else
- cerr << "Impossible d'ouvrir le fichier !" << endl;
- return 0;
- }
|