C++ Ecrire string dans fichier
Résolu
Bilow
-
Bilow -
Bilow -
Bonjour,
Je suis intermédiaire en c++, et je cherche comment inscrire un string dns un fichier (texte).
Voici (une partie) de mon code :
string phrase;
getline(cin, phrase); // Demande à l'utilisateur une phrase...
FILE* fichier = NULL;
fichier = fopen("monfichier.txt", "w");
fprintf(fichier, "%s", phrase);
fclose(fichier);
Je n'ai inclus que ces librairies :
#include <cstdlib>
#include <iostream>
#include <windows.h>
Mon compilateur me signale une erreur à la ligne : fprintf(fichier, "%s", phrase);
Comment faire pour inscrire le string phrase dans "monfichier.txt" ?
Merci d'avance,
Bilow.
Je suis intermédiaire en c++, et je cherche comment inscrire un string dns un fichier (texte).
Voici (une partie) de mon code :
string phrase;
getline(cin, phrase); // Demande à l'utilisateur une phrase...
FILE* fichier = NULL;
fichier = fopen("monfichier.txt", "w");
fprintf(fichier, "%s", phrase);
fclose(fichier);
Je n'ai inclus que ces librairies :
#include <cstdlib>
#include <iostream>
#include <windows.h>
Mon compilateur me signale une erreur à la ligne : fprintf(fichier, "%s", phrase);
Comment faire pour inscrire le string phrase dans "monfichier.txt" ?
Merci d'avance,
Bilow.
A voir également:
- Écrire dans un fichier c++
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
8 réponses
quel est le message d'erreur exactement ? Je t'aide volontier à le déchiffre, tu verras qu'il aide beaucoup.
regarde ensuite bien la syntaxe de fprintf :
http://www.cplusplus.com/reference/cstdio/fprintf/
et ceci pourrait t'aider à résoudre le problème :
http://www.cplusplus.com/reference/string/string/c_str/
http://www.cplusplus.com/reference/cstdio/fprintf/
et ceci pourrait t'aider à résoudre le problème :
http://www.cplusplus.com/reference/string/string/c_str/
Bonjour,
excuse-moi je me suis un peu mal exprimé :
le compilateur affiche un warning avec ce message :
[Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime
puis l'éxécutable plante.
Si je mets :
fprintf(fichier, phrase);
cela ne fonctionne pas (erreur) :
cannot convert `std::string' to `const char*' for argument `2' to `int fprintf(FILE*, const char*, ...)'
Voila...
Les liens que tu m'a passés aident, mais ne résout pas mon problème.
Merci de ton aide:)
excuse-moi je me suis un peu mal exprimé :
le compilateur affiche un warning avec ce message :
[Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime
puis l'éxécutable plante.
Si je mets :
fprintf(fichier, phrase);
cela ne fonctionne pas (erreur) :
cannot convert `std::string' to `const char*' for argument `2' to `int fprintf(FILE*, const char*, ...)'
Voila...
Les liens que tu m'a passés aident, mais ne résout pas mon problème.
Merci de ton aide:)
si si ;)
la classe string possède une méthode c_str() qui convertit ta string en chaine de type "C" que printf accepte. Va voir sous cette fonction dans le lien sur string ;)
la classe string possède une méthode c_str() qui convertit ta string en chaine de type "C" que printf accepte. Va voir sous cette fonction dans le lien sur string ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
pitié encore un autre problème...
lorseque j'inscrit un caractère spécial (é par exemple) dans le fichier, il est inscrit autre chose...
Par contre dans le programme il apparait normalement.
Comment faire ?
Merci beaucoup.
pitié encore un autre problème...
lorseque j'inscrit un caractère spécial (é par exemple) dans le fichier, il est inscrit autre chose...
Par contre dans le programme il apparait normalement.
Comment faire ?
Merci beaucoup.
ça je ne connais pas par coeur la réponse, mais c'est un problème fréquent qui a déjà été posé maintes et maintes fois sur ce site. Je te conseille d'ouvrir un nouveau sujet, ou mieux de faire une recherche ;). Si je retrouve un sujet qui en parle je te le dirai.
Pour le terme précis, c'est un problème d'encodage des caractères (ISO-blabla ou UTF-8 ) qui diffère entre windows et la console.
Pour le terme précis, c'est un problème d'encodage des caractères (ISO-blabla ou UTF-8 ) qui diffère entre windows et la console.
https://forums.commentcamarche.net/forum/affich-15078745-caracteres-speciaux-ne-passent-pas-en
regarde là déjà, j'y donnais un lien, vérifie s'il ne résoud pas ton souci!
Bonne chance.
regarde là déjà, j'y donnais un lien, vérifie s'il ne résoud pas ton souci!
Bonne chance.