0Pricing
C++ Academy · Leçon

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 25

Dé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 seule
  • std::ostringstream — écriture seule
  • std::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_argument

C++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

  1. std::string ou tableaux de caractères à la manière C
  2. Opérations sur les chaînes : concaténation, sous-chaînes, recherche et remplacement
  3. Flux de chaînes stringstream pour l’analyse
  4. Conversions de chaînes : to_string et stoi
← Retour à C++ Academy