[C++] Exercice basique sur les fichiers

Exercice basique sur les fichiers [C++] - C++ - Programmation

Marsh Posté le 28-03-2004 à 23:41:15    

Coucou  :)  
 
Je débute juste en C++ et je ne suis pas doué pour le coup^^ J'ai un exercice sur les fichiers qui me demande de faire ça:
 
Pour toutes les questions suivantes, utiliser une structure.
 
1/ Ecrire une fonction permettant de créer séquentiellement un fichier "mesures" comportant pour chaque mesure:
     -nom (20 caractères maximum), nom de la mesure
     -reference (15 caractères maximum), référence de la mesure
     -resultat (réel), résultat de la mesure
Les informations relatives aux différentes mesures seront saisies au clavier.
 
2/Ecrire une fonction permettant, à partir du fichier créé précédemment, de retrouver les informations correspondant à une mesure de nom donné.
 
3/Ecrire une fonction permettant, à partir du fichier créé précédemment, de retrouver les informations relatives à une mesure de "rang" donné (par accès direct).
 
4/Ecrire un programme de test regroupant toutes ces fonctions avec possibilité de menu de choix pour l'utilisateur comme ci-dessous:
     1     Créer et remplir le fichier mesures
     2     Consulter mesure par son nom
     3     Consulter mesure par son rang dans le fichier mesures
 
 
Pour le 1/ j'ai fait cela :
 

Citation :


#include <iostream.h>
#include <conio.h>
#include <stdio.h>
 
struct mesure
{
        char nom[20];
        char reference[15];
        float resultat;
        FILE * fp;
        void saisie();
};
 
void mesure::saisie()
{
        fp=fopen ("mesures.txt", "at" );
        cout<<"Donnez le nom de la mesure : ";
        cin>>nom;
        fprintf (fp,"%s",nom);
        cout<<"Donnez la reference : ";
        cin>>reference;
        fprintf (fp," %s",reference);
        cout<<"Donnez le resultat de la mesure : ";
        cin>>resultat;
        fprintf (fp," %f\n",resultat);
        fclose (fp);
}
void main()
{       int x;
        mesure nouvelle;
 
        x=1;
        while (x!=0)
        {
                nouvelle.saisie();
                cout<<"Donner 0 si la saisie est finie ou 1 si elle continue : ";
                cin>>x;
        };
        getch();
}


 
Bon ça marche mais pour que ça puisse fonctionner avec la suite il doit faloir changer des trucs peut-être  :sweat:  
Après le 2/ je ne sais pas trop comment faire et le 3/ vu le cours il faut se servir de fseek et fread (et fwrite peut-être du coup).
 
Si quelqu'un a une idée, je l'épouse sur le champ !  :love: Enfin juste si c'est une demoiselle  :na:  ;)  
 
Merci beaucoup en tout cas  :)  

Reply

Marsh Posté le 28-03-2004 à 23:41:15   

Reply

Marsh Posté le 29-03-2004 à 00:14:25    

quand t'auras fini tes conneries avec tes FILE*
 
utilise les fstream et aurevoir

Reply

Marsh Posté le 29-03-2004 à 10:24:10    

Merci bcp sauf que fstream ne figurant nul par ds le cours (ni ds la liste des commandes données, ni ds l'unique exemple), je crois qu'il ne faut pas s'en servir  :)

Reply

Marsh Posté le 29-03-2004 à 10:31:12    

ryo7 a écrit :

Merci bcp sauf que fstream ne figurant nul par ds le cours (ni ds la liste des commandes données, ni ds l'unique exemple), je crois qu'il ne faut pas s'en servir  :)  

ah bon ? et tu crois que c'est quoi cin et cout ? des stream C++, les FILE* étant du C.
 
donc tu jètes tout ça
 
lecture
ifstream ifs("fichier" );
 
écriture
ofstream ifs("fichier" );
 
et tu t'en sers comme avec cout et cin (selon)
 
http://cplusplus.com/ref/iostream/ifstream/
http://cplusplus.com/ref/iostream/ofstream/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed