IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Mettre les valeurs d'un tableau dans un fichier


Sujet :

C++

  1. #1
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut Mettre les valeurs d'un tableau dans un fichier
    Bonjour,

    Je suis actuellent entrain de faire un petit programme qui enregistre les Produits avec leur prix. Au lancement du programme, j'ai plus options ... dont l'ajout de prix et de leur prix.
    Pour cela, j'ai utilisé un tableau (une entrée) mais dont j'ai créé le type (voir code ci dessous). Lors de l'ajout de l'article, je n'ai pas de soucis, lorsque je l'affiche aucun soucis non plus , mais lorsque le fichier est créé, j'ai à la place du nom de l'article, le caractère è suivi du bon prix!
    Je ne comprends pas trop comment résoudre mon problème... voici une partie du code ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    struct typeArticle
        {
               char NomArticle[20];
               float PrixArticle;
        };
        typeArticle TabArticle[11];
     
    //Procédure permettant de calculer un prix TTC
    void CalculTTC ()
    {
         //Déclaration des Variables Locales
         float PrixHT;
         //Début de la procédure
         cout<<"Saisir le prix HT du produit: ";
         cin >>PrixHT;
         PrixTTC=FPrixTTC(PrixHT); //Ici, on appelle le resultat de la fonction (FPrixTTC avec en paramètre PrixHT)
         cout<<"Le prix TTC est de "<<PrixTTC<<" euros\n";
    }
     
    //Procédure pour Ajouter un ou plusieurs articles
    void AjouterArticle()
    {
         //Déclaration des variabes locales
         char NomArticle[20];
         float PrixArticle;
         char Reponse[1];
         //Début de la procédure
         do
         {
         NbArticle=NbArticle+1;
         cout<<"Saisissez le nom de l'article: ";
         cin >> NomArticle;
         CalculTTC();//Appel de la procédure Facture
         strcpy(TabArticle[NbArticle].NomArticle,NomArticle);
         TabArticle[NbArticle].PrixArticle=PrixTTC;
         cout <<"Voulez-vous saisir un autre produit? (o,n) ";
         cin >>Reponse;
         }
         while (strcmp(Reponse,"o")==0);
    }
     
    void SauvegarderProduit() 
    { int i; 
      FILE *fproduit; 
      if (NbArticle>0) 
      { 
        cout << "Sauvegarde des preoduits"; 
        fproduit = fopen("produit.txt","w"); 
        for (i=1;i<=NbArticle;i=i+1) 
        { 
          fprintf(fproduit,"%c %.2f \n",TabArticle[i].NomArticle,TabArticle[i].PrixArticle); 
        } 
        fclose(fproduit); 
      } 
    }
    Vous me direz surement que mes procédures sont mal déclarées ... cela est "normal".

    Merci

  2. #2
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Dans la fonction fprintf() ce ne serait pas plutôt %s que %c pour afficher des chaînes ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(fproduit,"%c %.2f\n", TabArticle[i].NomArticle, TabArticle[i].PrixArticle);
    D'autre part tu aurais pu éviter ces erreurs facilement en utilisant les std::string et les flux pour les fichiers (fstream). Tout ceci est dans la .
    Fiquet
    - FAQ SDL
    - FAQ C++

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Effectivement ! Je me suis trompé entre %s et %c... Il est vrai que j'aurai du passer par la FAQ avant, cependant je ne pensais pas que mon erreur était si simple ...

    Merci pour cette réponse très rapide !!!

  4. #4
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Ce n'est pas vraiment pour l'erreur propremen dite que je t'ai cité la FAQ. Mais connais-tu les types string et les flux du C++ ? Si non va donc faire un tour dans ces liens :

    http://c.developpez.com/faq/cpp/?page=strings
    http://c.developpez.com/faq/cpp/?page=fichiers

    Ca te simplifiera la vie !
    Fiquet
    - FAQ SDL
    - FAQ C++

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Je ne connais pas encore cela non ... C'est qu'en cours on me dit de faire de cette facon, donc je fais lol.

    Merci pour tes liens ! Je vais les lire de suite

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/01/2010, 14h32
  2. mettre les valeur d'un range dans un tableau
    Par calvi2002 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2009, 12h50
  3. Afficher les valeurs d'un tableau dans la fenêtre d'exécution
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/12/2008, 13h14
  4. Insérer les valeurs d'un tableau dans une table
    Par Konami15 dans le forum ASP
    Réponses: 30
    Dernier message: 30/09/2008, 15h14
  5. Réponses: 9
    Dernier message: 05/11/2005, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo