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++/CLI Discussion :

Problème écriture fichier avec fputs et chaine objet string


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut Problème écriture fichier avec fputs et chaine objet string
    Bonjour,
    J'ai un problème, je n'arrive pas a écrire dans un fichier avec fputs en mettant un chaine de caractère créée avec l'objet string, voici le code:
    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
     
    #include <string>
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        string test;
     
        test = "ceci est un test";
     
        FILE* fichier=NULL;
        fichier = fopen("test.txt", "w");
        if (fichier != NULL)
        {
            fputs(test, fichier);
            fclose(fichier);
        }
        else
        {
        cout<<impossible d'ouvrir le fichier;
        }
    }
    Dans la fenètre d'erreur (Build Message) ca me met:
    cannot convert `std::string' to `const char*' for argument `1' to `int fputs(const char*, FILE*)'|
    Quelqu'un serait comment écrire un chaine écrite avec l'objet string dans fichier? o_O

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 41
    Par défaut
    Salut Currite,

    la fonction fputs prends 2 paramètres : une chaine de caractères sous forme de pointeur de caractère (char *), et un pointeur de fichier (FILE *) !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     fputs(char *chaine, FILE *fichier);
    L'erreur dans ton code provient donc du fait que tu passes à fputs() comme premier paramètre ta variable test qui est de type "string" (là où elle attends une variable de type char *)!

    Comme solution :

    1- tu pourrais plutôt déclarer test comme un pointeur de caractère, c'est à dire au lieu de
    plutôt
    2- ou alors, si tu tiens à conserver le type "string" pour la variable "test", tu pourrais utiliser une méthode de la classe string pour convertir test en chaine de caractère (char *) et ainsi passer cette chaine de caractère à fputs! c'est la méthode c_str()! ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fputs(test.c_str(), fichier);
    Bon tu peux choisir l'une des deux méthodes, mais pense aussi à rajouter des guillemets pour entourer la chaine de caractère à afficher dans ton else (le dernier cout)!

    Cordialement!

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

Discussions similaires

  1. Problème écriture fichier avec FILE
    Par nikobordx dans le forum C
    Réponses: 3
    Dernier message: 10/10/2011, 12h55
  2. Problème écriture fichier xml
    Par ludo24 dans le forum ASP
    Réponses: 23
    Dernier message: 23/06/2008, 11h48
  3. Problème lecture fichier avec >>
    Par C1rcus dans le forum C++
    Réponses: 2
    Dernier message: 18/11/2007, 18h19
  4. Problème recup fichiers avec Easy recovery 6 pro
    Par poney01 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 16/05/2007, 15h00
  5. [Servlet] Probléme écriture fichier
    Par hedgehog dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/05/2005, 15h17

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