Derniers tutoriels :
Sondage :
Publicité
Derniers articles :
![]() |
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) |
- 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')&&(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) ![]() 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(2 ![]() 1>.\prog inutile.cpp(2 ![]() 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(4 ![]() 1>.\prog inutile.cpp(4 ![]() 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... ![]() - sangoku538 - 22-06-2007 07:06 AM Ok merci ![]() Et ça donne quoi ? - Teclis - 22-06-2007 08:34 AM Moi, je jette l'éponge, le C++ me dépasse ![]() ![]() - 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')&&(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 |