Bonjour,
je cherche une fonction explode qui permet de découper des String en fonction d'un caractere donné et qui met le tout dans un tableau
En fait je cherche la meme chose que la fonction explode en php :
http://fr.php.net/explode
Merci
Bonjour,
je cherche une fonction explode qui permet de découper des String en fonction d'un caractere donné et qui met le tout dans un tableau
En fait je cherche la meme chose que la fonction explode en php :
http://fr.php.net/explode
Merci
La réponse est dans laet dans plein de sujets sur ce forum.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
J'ai esseyé celle de la faq mais elle ne fonctionne pas.Envoyé par Laurent Gomila
Il ne trouve pas la fonction getline à 3 parametres
La premiere boucle semble bien fonctionner quand elle est seule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 std::ifstream fichier("chemin d'acces"); if ( fichier ) // ce test échoue si le fichier n'est pas ouvert { std::string ligne; // variable contenant chaque ligne lue std::string val; // cette boucle s'arrête dès qu'une erreur de lecture survient while ( std::getline(fichier, ligne) ) { // Découpage aux , while (std::getline(ligne, val, ',')) { // Code } } }
Erreurs :
edit:fatal error C1903: impossible de récupérer à partir des erreurs précédentes ; arrêt de la compilation
error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : 2 arguments attendus - 3 fournis
error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : 2 arguments attendus - 3 fournis
error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : impossible de déduire l'argument de modèle de 'std::basic_istream<_Elem,_Traits> &' à partir de 'std::string'
error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : impossible de déduire l'argument de modèle de 'std::basic_istream<_Elem,_Traits> &' à partir de 'std::string'
error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : impossible de déduire l'argument de modèle de 'std::basic_istream<_Elem,_Traits> &' à partir de 'std::string'
error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : impossible de déduire l'argument de modèle de 'std::basic_istream<_Elem,_Traits> &' à partir de 'std::string'
error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : impossible de déduire l'argument de modèle de 'std::basic_istream<_Elem,_Traits> &' à partir de 'std::string'
error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : impossible de déduire l'argument de modèle de 'std::basic_istream<_Elem,_Traits> &' à partir de 'std::string'
fatal error C1903: impossible de récupérer à partir des erreurs précédentes ; arrêt de la compilation
je suis sous vc++.net 2003
relis la FAQ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part J'ai esseyé celle de la faq mais elle ne fonctionne pas.
en effet un petit détail m'avait échapé.
ce code à l'air de fonctionner :
J'ai plus qu'a vérifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 // le constructeur de ifstream permet d'ouvrir un fichier en lecture std::ifstream fichier("chemin"); if ( fichier ) // ce test échoue si le fichier n'est pas ouvert { std::string ligne; // variable contenant chaque ligne lue std::string val; // cette boucle s'arrête dès qu'une erreur de lecture survient while ( std::getline(fichier, ligne) ) { std::istringstream l(ligne); // Découpage aux , while (std::getline(l, val, ',')) { // Code } } }
Merci
J'ai une autre petite question :
J'ai une chaine de caractere qui represente un chemin d'acces à un fichier genre "c:\dossier\fichier.txt" et j'aimerai récuperer uniquement "fichier.txt" mais si je passe par ma méthode de "split" je suis obligé de tout parcourir jusqu'au dernier element pour obtenir mon nom de fichier ou il existe un autre moyen ?
Il y a une fonction split dans boost::string_algo : http://www.boost.org/doc/html/string...html#id2743220
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Partager