Comment récupérer données dans un fichier .txt en C++
Fermé
fzheng2015
Messages postés
1
Date d'inscription
dimanche 24 avril 2016
Statut
Membre
Dernière intervention
24 avril 2016
-
Modifié par crapoulou le 27/04/2016 à 13:29
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 4 mai 2016 à 07:53
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 4 mai 2016 à 07:53
A voir également:
- Comment récupérer données dans un fichier .txt en C++
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Ouvrir un fichier .bin - Guide
2 réponses
stavax
Messages postés
25
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
2 mai 2016
2 mai 2016 à 12:21
2 mai 2016 à 12:21
Bonjour,
Faire un double str(63) n'a aucune sens.
a.find('63') serait plus adéquate içi.
Faire un double str(63) n'a aucune sens.
a.find('63') serait plus adéquate içi.
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
Modifié par Dalfab le 4/05/2016 à 07:57
Modifié par Dalfab le 4/05/2016 à 07:57
Bonjour,
Rechercher la chaîne "63" serait faux, supposons que le nombre 631 soit présent, on extrairait le 1.
Si on est sûr que 63 n'est pas le premier et qu'il est suivi, on fait :
a.find( " 63 " ).
On peut sinon lire les nombres un à un jusqu'au 63, puis lire le suivant.
Voire tout lire en mémoire dans un vector<>
Rechercher la chaîne "63" serait faux, supposons que le nombre 631 soit présent, on extrairait le 1.
Si on est sûr que 63 n'est pas le premier et qu'il est suivi, on fait :
a.find( " 63 " ).
On peut sinon lire les nombres un à un jusqu'au 63, puis lire le suivant.
Voire tout lire en mémoire dans un vector<>
std::string ligne;
std::vector<int> listeDeNombres;
while ( std::getline(fichier, ligne) ) {
std::istringstream iss(ligne);
// tous les nombres de la ligne mis dans le vector<>
std::copy( std::istream_iterator<int>(iss),
std::istream_iterator<int>(),
std::back_inserter(listeDeNombres));
}
// recherche de 63
auto itm = std::find(listeDeNombres.begin(),listeDeNombres.end(), 63);
// et prendre le suivant
if ( itm != listeDeNombres.end() ) {
++itm;
if ( itm != listeDeNombres.end() )
std::cout << *itm << std::endl;
else
std::cout << "rien apres\n";
}
else
std::cout << "pas de 63 dans le fichier\n";