Bonjour Safa,
Il y a plusieurs méthodes pour lire en C++ un fichier. Cela dépend aussi du fichier à lire et de l'utilisation des données lues. Voici donc un exemple dans lequel on lit un fichier de type texte où chaque ligne comprend le nom d'un élève, sa note en français et sa note en math, exemple :
Ernest 12 15
Claude 15 17
Arthur 13 19
Bernard 14 18
Cet exemple comporte volontairement une petite difficulté. En lisant une ligne dans une variable de type std::string on obtient toute la ligne. Ensuite quand on veut obtenir le nom de l'élève dans la variable nom prévue pour cela et de type std::string il faut identifier et utiliser la position du caractère <espace> qui sert de séparateur. C'est ce qui est fait. Pour utiliser les données lues on range dans trois vecteurs la liste des noms, la liste des notes en français et la liste des notes en math. Et pour finir on affiche le nom du meilleur élève en math.
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
int main(){
std::ifstream filein("fichier.txt");
int nb = 0;
std::vector<std::string> listeNoms;
std::vector<int> listeFran, listeMath;
std::string ligne;
while(std::getline(filein, ligne)) {
size_t posit = ligne.find(" ");
std::string nom = ligne.substr(0, posit);
int nfran, nmath;
std::stringstream ss;
ss << ligne.substr(posit);
ss >> nfran >> nmath;
std::cout << nom << " " << nfran << " " << nmath << std::endl;
listeNoms.push_back(nom);
listeFran.push_back(nfran);
listeMath.push_back(nmath);
++nb;
}
int prem, maxi = 0;
for(int i=0; i<nb; i++)
if(listeMath[i] > maxi) {
prem = i;
maxi = listeMath[i];
}
std::cout << "Le meilleur en math est : " << listeNoms[prem] << std::endl;
getchar();
return 0;
}
Chacun peut adapter cet exemple à son utilisation personnelle.