Hello !
Tu peux wrapper l'appel de getline dans une classe si tu préfères.
Tu pourras continuer à écrire Fichier >> Ligne;
<pre class=code>
#include <iostream>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
class ligne_matrice : public string
{
};
inline
istream& operator>>(istream& In, ligne_matrice& L)
{
return getline(In, L);
}
int main()
{
ifstream FichierMatrice("matrice.txt",ios::in);
if (!FichierMatrice)
{
cerr << "Ouverture du fichier impossible" << endl;
exit(1);
}
int val;
unsigned int Lignes = 0;
unsigned int Colonnes = 0;
// lecture de chaque ligne :
ligne_matrice Ligne;
while (FichierMatrice >> Ligne)
{
Lignes++;
Colonnes = 0;
istringstream S(Ligne, ios_base::in);
// lecture de chaque element :
while (S >> val)
{
Colonnes++;
cout << val << " ";
}
cout << endl << "Ligne " << Lignes << " contient " << Colonnes << " colonnes." << endl;
}
return 0;
}
</pre>