Sondage :

Publicité




Partenaires




Jmax-Hardware

mxdev.net

feedburner
donate.gif


118 visiteur(s) en ligne
Forums d'entraide informatique - Les forums de PCW
Comment enregistrer dans un fichier texte ? (c++) - Version imprimable

+- Forums d'entraide informatique - Les forums de PCW (http://forum.pcinfo-web.com)
+-- Forum : Forum Informatique (/forumdisplay.php?fid=39)
+--- Forum : Internet - Navigation -Programmation - Scripts - Developpement (/forumdisplay.php?fid=8)
+--- Discussion : Comment enregistrer dans un fichier texte ? (c++) (/showthread.php?tid=1377)

Pages : 1 2 3


Comment enregistrer dans un fichier texte ? (c++) - sangoku538 - 20-06-2007 15:07 PM

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


- Bilifly - 20-06-2007 15:46 PM

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


- sangoku538 - 20-06-2007 15:50 PM

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;
}


- Bilifly - 20-06-2007 20:20 PM

Euh, c'est tout ton source ?

Tu utilises quel compilateur ?


- sangoku538 - 20-06-2007 20:27 PM

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


- Bilifly - 20-06-2007 20:33 PM

Sache que dans la programmation orientée objet, il faut une classe.

Ici, il manque une classe, le constructeur/destructeur, les méthodes...


- sangoku538 - 20-06-2007 21:09 PM

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


- Teclis - 21-06-2007 06:37 AM

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


- Bilifly - 21-06-2007 07:24 AM

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


- sangoku538 - 21-06-2007 07:36 AM

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 ...