String découpage de string.
Bonjours,
J'ai un tableau qui contient des valeurs de type std::string, importé depuis un fichier, ce code est destiné à Linux, mais je cherche à le rendre portable autant que possible. Je cherche à extraire des mots entiers séparés par des tabulations ou des espaces.
Voici ce que j'ai commencé.
Les fichiers entête suivants ont été placés :
Code:
1 2 3 4
| #include <iostream>
#include <string>
#include <vector>
#include <sstream> |
Code:
1 2 3 4 5 6 7 8 9 10
| void split(const std::string &chaine, std::string delimiteur, std::vector<std::string> &elements)
{
std::stringstream ss(chaine);
std::string sousChaine;
while (std::getline(ss, sousChaine, delimiteur)))
{
elements.push_back(sousChaine);
}
} |
l'erreur est la suivante:
Code:
1 2 3 4 5 6 7 8 9 10
| ||=== Build: Debug in Log (compiler: GNU GCC Compiler) ===|
\main.cpp||In function 'void split(const string&, std::__cxx11::string, std::vector<std::__cxx11::basic_string<char> >&)':|
\main.cpp|14|error: no matching function for call to 'getline(std::stringstream&, std::__cxx11::string&, std::__cxx11::string&)'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\5.1.0\include\c++\bits\basic_string.tcc|1513|note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, _CharT)|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\5.1.0\include\c++\bits\basic_string.tcc|1513|note: template argument deduction/substitution failed:|
\main.cpp|14|note: deduced conflicting types for parameter '_CharT' ('char' and 'std::__cxx11::basic_string<char>')|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\5.1.0\include\c++\bits\basic_string.h|5207|note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\5.1.0\include\c++\bits\basic_string.h|5207|note: template argument deduction/substitution failed:|
\main.cpp|14|note: candidate expects 2 arguments, 3 provided|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| |
Cela demande un char mais si je fais la conversion ça ne marche toujours pas, si je change la fonction avec un paramètre un char même problème ..:mur:
Merci d'avance