Forums d'entraide informatique - Les forums de PCW

Version complète : Comment enregistrer dans un fichier texte ? (c++)
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Pages : 1 2 3
Bonjour,
Je voudrais savoir comment on fait pour enregistrer des variables dans un fichier texte avec des commentaires par exemple :
On dispose des variables nom et prénom et on veut que le programme enregistre dans un fichier donnees.txt --> il s'appelle Dupond Jacques ; comme on aurait pu faire avec --> cout << "il s'appelle " << nom << " " << prenom;
:park:

Merci d'avance Smile
Bonjour à toi et bienvenue, si tu veux te présenter dans la section "Présentations"

Il faut utiliser fopen, avec une variable qui a comme contenu sur fopen, exemple :

FILE *fic;
fic=fopen("donnees.txt","a+");

fprintf(fic,"Il s'appelle : %s %s",nom,prenom);

.....

fclose(fic);


Voilà, c'est dans ce style Wink
Oki, merci beaucoup mais mon programme plante ...

voila mon code, si tu pouvais voir le problème stp :

#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
// Nom
string nom;
cout << "Entrez votre nom : ";
cin >> nom;

// Prénom
string prenom;
cout << "\nEntrez votre prenom : ";
cin >> prenom;

// Age
unsigned age;
cout << "\nQuel est votre age ? ";
cin >> age;

// Sexe
char sexe;
string sortieSexe;

cout << "\nEtes-vous un homme ou une femme ? Entrez m pour homme et f pour femme : ";
cin >> sexe;

if (sexe == 'm')
{
sortieSexe = "un homme age";
}

if (sexe == 'f')
{
sortieSexe = "une femme agee";
}
// Sexe - teste la variable sexe si n'est ni m ni f, boucle pour redemander la variable

// Adresse
int numeroRue;
string nomRue;
string codePostal;
string commune;


// Sortie
cout << "\nRecapitulatif :\n\nVotre prenom : " << prenom << "\nVotre nom : " << nom << "\nVous etes " << sortieSexe << " de " << age << " ans\n";
cout << "\n";

// enregistrement
FILE* fichier = NULL;
fichier = fopen("donnees.txt", "a+");

if (fichier != NULL)
{

fputs("Récapitulatif :\n", fichier);
fprintf(fichier, "Nom : %s", nom);
fprintf(fichier, "\nPrenom : %s", prenom);
fprintf(fichier, "\nAge : %s", age);

fclose(fichier); // On ferme le fichier qui a été ouvert

cout << "ecriture dans le fichier reussie\n";
}
else
{
// On affiche un message d'erreur si on veut
printf("Impossible d'ouvrir le fichier");
}



system("pause");
return 0;
}
Euh, c'est tout ton source ?

Tu utilises quel compilateur ?
J'utilise dev c++.
Oui, c'est tout mon fichier source ^^ je débute et je fait des programmes totalement inutiles pour apprendre ... :boulet: mdr
(Vous moquez pas mdr)!

voila les codes d'erreur :

37:27 C:\Documents and Settings\Propriétaire\Mes documents\Projet c++\Programme inutile\progutile.cpp [Warning] hex escape sequence out of range

76 C:\Documents and Settings\Propriétaire\Mes documents\Projet c++\Programme inutile\progutile.cpp [Warning] cannot pass objects of non-POD type `struct std::string' through `...'; call will abort at runtime

Merci d'avance Smile
Sache que dans la programmation orientée objet, il faut une classe.

Ici, il manque une classe, le constructeur/destructeur, les méthodes...
Je crois comprendre mais ici dans ce programme mon but n'est pas encore de créer plusieurs fiches pour plusieurs personnes ...
Je me contenterais d'abord d'enregistrer un petit fichier tout simple avec les informations et d'afficher ces infos avant de les enregistrer.

Ensuite je créerais peut-être une classe "fiche personnelle" mais pour l'instant, je fais un petit truc tout simple ^^

Merci d'avance
Bonjour,

DevC++ :o Je te conseille de passer à CodeBlocks ou Visual C++, paraît que c'est beaucoup mieux... Sinon, où as-tu appris à coder en C++ ? que l'on puisse à la limite te passer des liens de site pratiques... (voir le post-it d'ailleurs à ce sujet).

Je connais moi même un peu C mais très peu C++ donc ne peux pas beaucoup t'aider Sad

Bon courage Smile
Teclis
Bonjour

Ton programme fonctionne, j'ai testé, les messages que tu as ne sont pas des erreurs, mais simplement des Warnings, n'en tiens pas compte

Par contre, à la fin j'ai un message d'erreur :

Image: sanstitrefz0.jpg

As-tu ce message d'erreur ?

Dans le contenu du fichier donnees.txt, il n'y a pas de coordonnees que l'on a tapées
Pour Teclis :
J'ai visual c++, ça parait bête mais j'ai toujours pas trouvé le bouton pour compiler mdr ...
Sinon, j'apprends le c++ avec le livre "c++ pour les nuls" et je regarde de temps en temps "le site du zero".

Si quelqu'un a essayé le code, pourquoi peut-il planter comme ça :shock:

Petit question hors sujet : pourquoi printf/cout et scanf/cin ?? Printf et cout ; scanf et cin font la même chose mais fonctionne différament ... :boulet:

Merci d'avance Smile

Pour bilifly : Oui j'ai le même truc (je l'ai eu une fois) mais de plus, le programme plante arrivé à un certain stade ...

Image: erreur.bmp
Image: erreur2.bmp

Je tape le nom, le prénom, l'age, le sexe, le numéro de rue, son nom et paf, la tout le programme se déroule d'un coup ...

Effectivement il créer un fichier donnees.txt mais rien dedans ...
Pages : 1 2 3
URLs de référence