IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

ostringstream et convertions de données


Sujet :

C++

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut ostringstream et convertions de données
    Bonjour tous,

    je voudrais avoir une confirmation sur l'utilisation de "ostringstream"

    je veux stocker transformer un nombre (qui varie) en string pour cela j'ai utilisé cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    string myString;
            while (UUU < 3)
            {
    //je stock un nombre dans le flux
                ostringstream Temp;
                Temp << nombre[UUU];
    //je converti le contenu pour qu'il devient un string
                string concentrationValue = Temp.str();
    //je concatène des string
                myString+=" "+concentrationValue;
     
                UUU++;
            }
    ce type de code me fait planter sauvagement mon programme en m'arretant tout !

    => du coup je me pose des questions sur l'utilisation de ce flux "ostringstream"
    es ce que je fais et vraiment correct et le .str() est bien fiable ??

    (j'ai essayé de concaténer aussi avec append() mais meme probleme mon programme plante carrement)

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <vector>
     
     
    int main(int argc, char * argv[])
    {
    	std::vector<int> nombre;
    	nombre.push_back(1);
    	nombre.push_back(23);
    	nombre.push_back(-6);
     
    	std::string myString;
    	int UUU = 0;
    	while (UUU < 3)
    	{
    		//je stock un nombre dans le flux
    		std::ostringstream Temp;
    		Temp << " " << nombre[UUU];
    		//je concatène des string
    		myString.append(Temp.str());
    		UUU++;
    	}
     
    	std::cout << myString << std::endl;
    	return 0;
    }
    Je pense que tu ne devrais pas utiliser la notation " " + uneString car " " n'est pas une string mais un const char *.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    merci canard mais je crois que mon probleme est beaucoup plus grave que cela

    ton code fonctionne bien mais lorsque je le mets dans ma fonction alors ça me fait planter sauvagement la compilation et ca me donne une erreur systeme

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    Je pense que tu ne devrais pas utiliser la notation " " + uneString car " " n'est pas une string mais un const char *.
    Oui, mais si uneStringest un string, et non un char*, c'est sensé marcher.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par 21did21 Voir le message
    => du coup je me pose des questions sur l'utilisation de ce flux "ostringstream"
    es ce que je fais et vraiment correct et le .str() est bien fiable ??
    Je ne vois là aucun soucis.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    en fait je crois que j'ai un gros beug car quand je fais un autre projet ça marche et dans ce projet ça ne marche pas...

    merci tous en tout cas pour votre aide

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Oui, mais si uneStringest un string, et non un char*, c'est sensé marcher.
    Exact. Quoi qu'il en soit, on n'a pas mis le doigt sur le problème

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    je suis vraiment désolé de vous avoir dérangé,

    en fait mon probleme venait d'ailleurs

    => merci en tout cas d'avoir pris le temps de repondre
    je suis sincerement desolé, j'avais oublié un truc ...

    ps: lorsque "j'activais" l'écriture de fichiers "j'activais" egalement un autre truc et c dans ce truc qu'il y avait un beug...

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par 21did21 Voir le message
    lorsque "j'activais" l'écriture de fichiers "j'activais" egalement un autre truc et c dans ce truc qu'il y avait un beug...
    Voilà qui est parfaitement clair

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    Voilà qui est parfaitement clair
    mdr

    je le refais mais en français:
    => j'ai une variable globale (constante bool) que je mets à TRUE si je veux activer l'écriture de fichiers de sortie
    => ce que j'ai oublié c'est que ma variable globale actionne aussi une autre fonction et c'est ici que le probleme ce trouvé

    encore désolé du dérangement j'avais carrément zappé ce detail

    A+

  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par 21did21 Voir le message
    => j'ai une variable globale (constante bool) que je mets à TRUE si je veux activer l'écriture de fichiers de sortie
    C'est mal . Mieux vaut une variable d'environnement, ou des appels compilées uniquement en mode debug pour ce faire.

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    C'est mal .
    je comprends que des variables global c'est mal mais moi c'est juste une constante que je ne jamais, c'est juste pour faire des:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (MA_CONSTANTE==true)
    {
    }
    else
    {
    }
    à certains endroits. Je n'utilise ces constantes que pour cela et rien d'autres donc je pense que ce n'est pas genant? j'utilise une variable globale car dans plusieurs classes, methode... je fais un test de ce genre et la variable globale permet de ne pas avoir de grosses manipulations à faire

    Citation Envoyé par jblecanard Voir le message
    Mieux vaut une variable d'environnement, ou des appels compilées uniquement en mode debug pour ce faire.
    je ne connais pas c'est deux choses (ou que de nom) pourrais tu me detailler stp leur utilisation/utilité ?

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. convertion de donne du c vers le c++
    Par neismarspra dans le forum C++
    Réponses: 5
    Dernier message: 30/08/2009, 22h38
  2. Convertion de données
    Par wmenant dans le forum Développement
    Réponses: 0
    Dernier message: 28/08/2008, 20h12
  3. Convertion de données
    Par will2taz dans le forum VB.NET
    Réponses: 14
    Dernier message: 15/07/2007, 17h49
  4. convertion de données avec visual wev developer
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/02/2007, 22h37
  5. erreur généré pour une convertion de donnée
    Par poporiding dans le forum C++
    Réponses: 6
    Dernier message: 04/04/2006, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo