Bonsoir,
Sur le cours de C++ du site (très bien fait), je ne comprends pas une ligne dans le corrigé proposé :
flux.str(std::string {});
(Le lien de la ligne ici)
J’avais bien compris (un peu avant dans le code) qu’en écrivant std::string nom_morceau flux.str()
, on affecte à la chaîne de caractères nom_morceau
une chaîne contenant le « flux ».
Mais je ne suis pas encore à l’aise avec les flux, et je ne comprends vraiment pas ce que fait l’instruction tout au-dessus.
Je pense avoir un peu compris l’utilité : cela permet de vider le flux, de le réinitialiser en quelque sorte. Mais j’ai un peu de mal encore à comprendre la logique du truc : le fait de le "considérer/convertir en/rendre en" string pour le réinitialiser.
Je trouve les opérateurs <<
et >>
très très spéciaux. Pour moi <<
c’est un peu de la concaténation de flux. Mais j’ignore ce que l’on concatène lorsque qu’on écrit std::cout << "blabla"
…
Pour affecter une valeur à un flux, on utilise par exemple std::cin
mais comment l’initialiser sinon ?
Lorsqu’il s’agit d’un flux de chaînes, peut-on lui affecter une valeur lorsqu’on l’initialise avec std::ostringstream flux
?
J’avais déjà très peu compris la ligne suivante :
flux_chaine << std::scientific << std::showpos << reel << std::endl;
dans le chapitre-ci.
Bon, je vais relire le cours sur les flux pour essayer d’éclairer mes pensées.
J’espère y voir plus clair après vos réponses . Bonne soirée !