Sondage :

Publicité




Partenaires




Jmax-Hardware

mxdev.net

feedburner
donate.gif


1 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


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

Euh, j'ai changé un poil mon code depuis :

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

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

} while((sexe=='f')&amp;&amp;(sexe=='m'));


if (sexe == 'f')
{
sortieSexe = "femme ag\x82e";

}

if (sexe == 'm')
{
sortieSexe = "homme ag\x82";
}


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

cout << "\nEntrez maintenant votre num\x82ro de rue : ";
cin >> numeroRue;
cout << "\nle nom de votre rue comme rue du paradis : ";
cin >> nomRue;
cout << "\nvotre code postal : ";
cin >> codePostal;
cout << "\nEt enfin le nom de votre ville/commune : ";
cin >> 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 - 21-06-2007 11:44 AM

Bonjour à vous

Sous Visual C++, le bouton pour compiler se trouve pas très loin (si tu connais bien l'anglais)

Image: sanstitrepk8.jpg

Build = Construire
Compile = Compiler


- sangoku538 - 21-06-2007 17:32 PM

Oui je connais bien l'anglais mais pour éviter de me casser la tête, je l'ai en français ^^
Mais j'ai visual c++ 2005 express ... et je ne trouve toujours pas le bouton que tu m'a montré !


- sangoku538 - 21-06-2007 17:42 PM

J'ai trouvé le bouton compiler (que j'ai été obligé d'ajouter dans le menu...). Voila tout ce que visual c++ me sort comme erreurs quand je compile :

1>.\prog inutile.cpp(7) : error C2871: 'std' : un espace de noms avec ce nom n'existe pas
1>.\prog inutile.cpp(12) : error C2065: 'string' : identificateur non déclaré
1>.\prog inutile.cpp(12) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'nom'
1>.\prog inutile.cpp(12) : error C2065: 'nom' : identificateur non déclaré
1>.\prog inutile.cpp(13) : error C2065: 'cout' : identificateur non déclaré
1>.\prog inutile.cpp(14) : error C2065: 'cin' : identificateur non déclaré
1>.\prog inutile.cpp(17) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'prenom'
1>.\prog inutile.cpp(17) : error C2065: 'prenom' : identificateur non déclaré
1>.\prog inutile.cpp(28) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'sortieSexe'
1>.\prog inutile.cpp(28) : error C2065: 'sortieSexe' : identificateur non déclaré
1>.\prog inutile.cpp(46) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'nomRue'
1>.\prog inutile.cpp(46) : error C2065: 'nomRue' : identificateur non déclaré
1>.\prog inutile.cpp(47) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'codePostal'
1>.\prog inutile.cpp(47) : error C2065: 'codePostal' : identificateur non déclaré
1>.\prog inutile.cpp(48) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'commune'
1>.\prog inutile.cpp(48) : error C2065: 'commune' : identificateur non déclaré
1>.\prog inutile.cpp(56) : error C2065: 'FILE' : identificateur non déclaré
1>.\prog inutile.cpp(56) : error C2065: 'fichier' : identificateur non déclaré
1>.\prog inutile.cpp(56) : error C2065: 'NULL' : identificateur non déclaré
1>.\prog inutile.cpp(57) : error C3861: 'fopen' : identificateur introuvable
1>.\prog inutile.cpp(62) : error C3861: 'fputs' : identificateur introuvable
1>.\prog inutile.cpp(63) : error C3861: 'fprintf' : identificateur introuvable
1>.\prog inutile.cpp(64) : error C3861: 'fprintf' : identificateur introuvable
1>.\prog inutile.cpp(65) : error C3861: 'fprintf' : identificateur introuvable
1>.\prog inutile.cpp(67) : error C3861: 'fclose' : identificateur introuvable
1>.\prog inutile.cpp(74) : error C3861: 'printf' : identificateur introuvable
1>.\prog inutile.cpp(79) : error C3861: 'system' : identificateur introuvable

Y'en a plein, comparé à DEV C++ ...


- Bilifly - 21-06-2007 19:03 PM

Bonsoir

Il faut déclarer les librairies stdlib.h et stdio.h


- sangoku538 - 21-06-2007 19:39 PM

toujours les même erreurs ..

C'est pas grâve, je reste sur dev, mais pourquoi mon programme plante comme ça, vous l'avez essayé ?


- Bilifly - 21-06-2007 19:51 PM

Je fais mes essais, elles sont en cours... Wink


- sangoku538 - 22-06-2007 07:06 AM

Ok merci Smile
Et ça donne quoi ?


- Teclis - 22-06-2007 08:34 AM

Moi, je jette l'éponge, le C++ me dépasse Tongue Je vais rester à PHP je crois Big Grin


- Bilifly - 22-06-2007 15:22 PM

Bonsoir à vous

J'ai trouvé les erreurs, le programme fonctionne plus ou moins bien maintenant, avec l'écriture sur le fichier aussi

En rouge je te mets les modifications que j'ai apportées.

Je te donne le source :
------------------------------------------------------------
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{

// Nom
//string nom;
char nom[12];

cout << "Entrez votre nom : ";
cin >> nom;

// Prénom
//string prenom;
char prenom[12];

cout << "\nEntrez votre prenom : ";
cin >> prenom;

// Age
//unsigned age;
int age;

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

// Sexe
char sexe;
string sortieSexe;

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

} while((sexe=='f')&amp;&amp;(sexe=='m'));

if (sexe == 'f')
{
sortieSexe = "femme agee";

}

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

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


cout << "\nEntrez maintenant votre numero de rue : ";
cin >> numeroRue;
cout << "\nle nom de votre rue comme rue du paradis : ";
cin >> nomRue;
cout << "\nvotre code postal : ";
cin >> codePostal;
cout << "\nEt enfin le nom de votre ville/commune : ";
cin >> 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("Recapitulatif :\n", fichier);
fprintf(fichier, "Nom : %s", nom);
fprintf(fichier, "\nPrenom : %s", prenom);
fprintf(fichier, "\nAge : %d", 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;
}
-----------------------------------------------------------------

En changeant les string en tableau de char (chaîne de caractères) cela a permit de résoudre les Warnings que tu avais au début

La cause du message d'erreur à la fin du programme était ceci :

unsigned age;

Une variable non signée qui n'a pas de type c'est bizarre, j'ai changé en int (integer = entier) car l'âge est une valeur numérique

Et plus bas, j'ai remplacé le %s par un %d => fprintf(fichier, "\nAge : %d", age);

Le problème, c'est quand on entre le nom de la rue, après qu'on valide Entrée, il fini directement le programme