le fractionnement des int à partir d'une chaîne
J'ai de la chaîne avec le numéro sur ints séparées par un délimiteur d'espace. Peut quelqu'un m'aider comment diviser la chaîne en ints. J'ai essayé d'en utiliser, et puis substr. Est-il un meilleur moyen de le faire ?
Je suis pas sûr de ce qu'format exact que vous décrivez - juste de l'espace séparées des chiffres? Un exemple de chaîne de l'aide.
Recherche Google "fractionnement de la chaîne de c++" donne: oopweb.com/CPP/Documents/CPPHOWTO/Volume/...
EX: 12 12 14 14
Recherche Google "fractionnement de la chaîne de c++" donne: oopweb.com/CPP/Documents/CPPHOWTO/Volume/...
EX: 12 12 14 14
OriginalL'auteur brett | 2010-08-06
Vous devez vous connecter pour publier un commentaire.
Utiliser un stringsteam:
Qu'entendez-vous par "mieux"?
Simple et élégant...
Si il y a toujours deux nombres, vous pouvez le faire:
int x, y; is >> x >> y;
de les extraire à la fois sans une boucle.merci beaucoup
OriginalL'auteur
Cela a été discuté dans le cadre de Découper une chaîne en C++?
Aussi, vous pouvez utiliser la bibliothèque boost fonction de répartition pour réaliser le fractionnement sans boucle dans votre programme.
Par exemple.
boost::split(epoch_vector, epoch_string, boost::is_any_of(","));
OriginalL'auteur Kisalay
Une version à l'aide de coup de pouce. Les stringstream version de Neil est tellement plus simple!
std::istringstream is(str);
et puis nestd::copy(std::istream_iterator<int>(is), std::istream_iterator<int>(), std::back_inserter(numbers));
Nice! Le istream_iterator attendre de l'espace délimité par les éléments, ou peut-il également prendre en compte d'autres délimiteurs?
Il attend de l'espace délimité par les éléments, il ne peut pas gérer d'autres délimiteurs.
OriginalL'auteur Brian O'Kennedy
J'ai eu quelques difficultés lors de la lecture et de convertir plus d'une corde (j'ai trouvé j'ai dû effacer la chaîne de stream). Voici un test que j'ai fait avec plusieurs int/string conversions en lecture/écriture à une e/s de fichier.
OriginalL'auteur RiGonz