Flux de chaînes stringstream pour l’analyse
Utilisez std::stringstream pour tokeniser et analyser du texte en valeurs typées.
Flux de chaînes stringstream pour l’analyse est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce qu'un stringstream ?
std::stringstream encapsule une chaîne dans une interface de flux d'E/S. Lisez et écrivez avec >> et <<, comme s'il s'agissait de cin ou de cout.
#include <sstream>
std::stringstream ss;Construire des chaînes avec stringstream
Utilisez-le pour construire des chaînes complexes à partir de types mixtes. Appelez .str() pour obtenir le résultat.
std::stringstream out;
out << "User: " << name << ", Age: " << age;
std::string result = out.str();Analyser avec stringstream
Initialisez-le à partir d'une chaîne, puis extrayez les valeurs avec >>. Les espaces servent de séparateurs entre les jetons.
std::stringstream in("42 3.14 hello");
int i; double d; std::string s;
in >> i >> d >> s;Lire une ligne en jetons
Combinez getline avec stringstream pour découper une ligne à la fois en jetons.
std::string line = "1 2 3 4 5";
std::stringstream ss(line);
int n;
while (ss >> n) {
std::cout << n * n << " ";
}
// 1 4 9 16 25Découper avec un délimiteur
Transmettez un délimiteur à getline sur un stringstream pour découper selon des virgules, des points-virgules ou n'importe quel caractère.
std::string csv = "apple,banana,cherry";
std::stringstream ss(csv);
std::string fruit;
while (std::getline(ss, fruit, ',')) {
std::cout << fruit << "\n";
}istringstream et ostringstream
Il existe trois variantes :
std::istringstream— lecture seulestd::ostringstream— écriture seulestd::stringstream— les deux
Utilisez la variante la plus spécialisée pour plus de clarté.
Vérifier les erreurs d'analyse
Si l'extraction échoue (par exemple, à cause d'un type incorrect), le flux active un indicateur d'échec. Vérifiez !ss ou ss.fail() après l'extraction.
std::stringstream ss("not_a_number");
int x;
if (!(ss >> x)) {
std::cout << "Parse failed";
}Réinitialiser un stringstream
Pour réutiliser un stringstream, effacez son état et son contenu.
std::stringstream ss;
ss << "first";
ss.str(""); // clear contents
ss.clear(); // clear flags
ss << "second";Convertir un nombre en chaîne
Pour les conversions simples, std::to_string est plus court qu'un stringstream.
std::string s = std::to_string(42); // "42"
std::string p = std::to_string(3.14); // "3.140000"Convertir une chaîne en nombre sans flux
std::stoi, std::stod et std::stoll analysent les nombres contenus dans des chaînes et lèvent une exception en cas d'entrée incorrecte.
int n = std::stoi("42");
double d = std::stod("3.14");
// std::stoi("xyz") throws std::invalid_argumentC++17 std::from_chars
Pour une vitesse maximale, std::from_chars dans <charconv> analyse les valeurs sans exceptions ni allocations. Idéal pour les chemins très sollicités.
Vérification rapide
Quel fichier d'en-tête devez-vous inclure pour utiliser std::stringstream ?
Récapitulatif
std::stringstream transforme les chaînes en flux pour faciliter l'analyse et le formatage. Combinez-le avec std::getline pour découper selon des délimiteurs. Pour les cas simples, préférez std::to_string et std::stoi.
Questions Fréquemment Posées
La leçon « Flux de chaînes stringstream pour l’analyse » est-elle gratuite ?
Oui — le texte complet de « Flux de chaînes stringstream pour l’analyse » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Flux de chaînes stringstream pour l’analyse » ?
Utilisez std::stringstream pour tokeniser et analyser du texte en valeurs typées. Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C++ Academy ?
Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Flux de chaînes stringstream pour l’analyse » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?
Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- std::string ou tableaux de caractères à la manière C
- Opérations sur les chaînes : concaténation, sous-chaînes, recherche et remplacement
- Flux de chaînes stringstream pour l’analyse
- Conversions de chaînes : to_string et stoi