En fait std::getline renvoie 'true' si elle a pu lire au minimum un caractère et faux si l'opération a échoué, donc la ligne 'while( std::getline() )' lit toutes les lignes du fichier jusqu'à atteindre la fin de celui-ci. (Tu noteras au passage que std::getline() ne stocke pas les fin de lignes(*1) dans le deuxième paramètre qui est une std::string, soit un type du c++ qui stocke une chaine de caractère).
Le type 'vector' est une classe template qui se charge d'allouer le nombre voulu du type fourni en template dans un tableau dynamique. Ici on veut pouvoir pourvoir stocker plusieurs std::string (des lignes de fichier ici) en mémoire. Le std::vector gère tout seul comme un grand la taille du tableau dynamique, il permet notamment de:
- Rajouter un élément à la fin du tableau avec les fonctions membres 'push_back' et 'emplace_back'
- Initialiser le tableau dynamique à la taille voulue (dans les limites de la taille de la mémoire) avec le constructeur.
- Accéder à la case voulue avec les crochets (l'opérateur crochet) : fileLines[ 'numéro case' ]
Ici comme tu peux le voir je rajoute dans le while une ligne de fichier lue au bout du tableau.
Une fois toutes les lignes lues tu peux les afficher avec le code suivant:
for( auto const &line : vect )
{
std::cout << line << std::endl;
}
ou bien :
if( false == vect.empty() )
{
for( size_t i{0} ; i < vect.size() ; ++i )
{
std::cout << vect[i] << std::endl;
}
}
Préfère la première solution à chaque fois que c'est possible
Admettons que tu as 10 lignes dans ton vector , pour (par exemple comparer la ligne 7 à la ligne 9), il te suffit d'écrire ceci:
std::vector <std::string> vector;
//Ici: code pour lire les lignes du fichier
//----------------------------------------
if( vector[6] == vector[8] )
{
// si les lignes sont identiques
}
else{
// si les lignes sont différentes
}
En fait std::getline renvoie 'true' si elle a pu lire au minimum un caractère et faux si l'opération a échoué, donc la ligne 'while( std::getline() )' lit toutes les lignes du fichier jusqu'à atteindre la fin de celui-ci. (Tu noteras au passage que std::getline() ne stocke pas les fin de lignes(*1) dans le deuxième paramètre qui est une std::string, soit un type du c++ qui stocke une chaine de caractère).
Le type 'vector' est une classe template qui se charge d'allouer le nombre voulu du type fourni en template dans un tableau dynamique. Ici on veut pouvoir pourvoir stocker plusieurs std::string (des lignes de fichier ici) en mémoire. Le std::vector gère tout seul comme un grand la taille du tableau dynamique, il permet notamment de:
- Rajouter un élément à la fin du tableau avec les fonctions membres 'push_back' et 'emplace_back'
- Initialiser le tableau dynamique à la taille voulue (dans les limites de la taille de la mémoire) avec le constructeur.
- Accéder à la case voulue avec les crochets (l'opérateur crochet) : fileLines[ 'numéro case' ]
Ici comme tu peux le voir je rajoute dans le while une ligne de fichier lue au bout du tableau.
Une fois toutes les lignes lues tu peux les afficher avec le code suivant:
for( auto const &line : vect )
{
std::cout << line << std::endl;
}
ou bien :
if( false == vect.empty() )
{
for( size_t i{0} ; i < vect.size() ; ++i )
{
std::cout << vect[i] << std::endl;
}
}
Préfère la première solution à chaque fois que c'est possible
Admettons que tu as 10 lignes dans ton vector , pour (par exemple comparer la ligne 7 à la ligne 9), il te suffit d'écrire ceci:
std::vector <std::string> vector;
//Ici: code pour lire les lignes du fichier
//----------------------------------------
if( vector[6] == vector[8] )
{
// si les lignes sont identiques
}
else{
// si les lignes sont différentes
}
- Edité par Warren79 il y a environ 1 heure
Mercii beaucoup je vais m'y remettre et essayer tout ça
Comparer 2 lignes du meme dossier .txt
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr