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 :

impression .csv de mapStringDouble


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut impression .csv de mapStringDouble
    Bonjour à tous,

    Je cherche à imprimer des données dans un csv.
    Il semblerait que j'ai un problème, il ne m'ouvre même pas de fichier.
    Ma map est bien remplie.
    Mon code est le suivant
    .cpp

    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
     
    bool LocalSystem::printcsv()
    {
        ifstream fout("out.csv");
        if (!fout)
            {
                cerr<<"Can't print to CSV"<<endl;
            }
        for (MapOfStringDouble::iterator iter = NewLoadPPerLine->begin(); iter!=NewLoadPPerLine->end(); iter++)
        {
     
            fout<<iter->first<<";"<<iter->second<<endl;
        }
        fout.close();
     
        return true;
    }
    J'ai le message d'erreur suivant :
    Error 1 error C2784: 'std::basic_ostream<_Elem,_Traits> &std::operator <<(std::basic_ostream<_Elem,_Traits> &,const std::_Smanip<_Arg> &)' : could not deduce template argument for 'std::basic_ostream<_Elem,_Traits>

    Merci à tous.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Quelle est la définition du second élément de ta map et quelle la définition de l'opérateur << s'il s'agit d'un type à toi ?

  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut
    Salut,

    Le second élément est un double.
    Est le << n'est pas un opérateur à moi mais l'opérateur classique de C++.

    Julien

  4. #4
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Bonjour,
    ifstream = input file stream

  5. #5
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut
    Je ne comprends pas très bien ce que tu me dis
    Je pensais plutot qu'il me manquait qq en parametre.

  6. #6
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Il te faut utiliser un ofstream pour écrire dans un fichier... ifstream = input.
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  7. #7
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut
    Il me manquait effectivement le second paramétre.
    et au lieu de ifstream c'etait fstream.
    Merci.

    Julien

  8. #8
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Le second paramètre? Pas parler de second paramètre moi x).

    Je dis juste que ifstream fout(..) devient ofstream fout().

    Et petite précision : l'appel à fstream::close() est superflue dans ton cas (pas d'allocation dynamique) vu que fstream est une classe RAII-isante.
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  9. #9
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Quel second paramètre ?

    lire dans un fichier = ifstream (input file stream)
    écrire dans un fichier = ofstream (output file stream)
    lier et écrire dans un fichier = fstream (file stream)

    Ici, tu veux seulement écrire dans le fichier .cvs, donc il faut une ofstream :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    bool LocalSystem::printcsv()
    {
        ofstream fout("out.csv");
        if (!fout)
            {
                cerr<<"Can't print to CSV"<<endl;
            }
    // ...
    }
    Edit : Croisement avec Goten

  10. #10
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 141
    Points : 91
    Points
    91
    Par défaut
    Salut,

    Voila ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fstream fout (this->configuration->getNewLoadName().c_str(),ios::out);
        if (!fout)
        {
            cerr<<"CAN'T OPEN  FILE FOR WRITING!"<<endl;
        }

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

Discussions similaires

  1. [CR][VB6] Impression d'un état depuis VB
    Par sda dans le forum SDK
    Réponses: 3
    Dernier message: 06/02/2007, 17h27
  2. Quick Report et impression de données hors BDD
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 19/08/2002, 09h47
  3. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  4. Impression d'image bmp
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2002, 09h38
  5. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37

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