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
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;
}
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
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é !
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++ ...
Bonsoir

Il faut déclarer les librairies stdlib.h et stdio.h
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é ?
Je fais mes essais, elles sont en cours... Wink
Ok merci Smile
Et ça donne quoi ?
Moi, je jette l'éponge, le C++ me dépasse Tongue Je vais rester à PHP je crois Big Grin
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
Pages : 1 2 3
URLs de référence