ok. Voici mon code
#include <iostream>
#include <fstream>
using namespace std;
// --- Déclaration de la structure mesure
struct MESURE
{
char nom[20];
char reference[15];
long resultat;
};
int main()
{
try
{
//déclaration d'un tableau de Mesures de même structure que MESURE
MESURE Mesures[1000];
//déclaration du nom de fichier qui sera créé par l'utilisateur
char nomFichier[256];
//initialisation de la variable n
int n = 0;
//déclaration du pointeur sur une structure de type FILE
FILE * pFichier;
// ************************************************************
// Création et écriture des données dans un fichier
// ************************************************************
cout << "\nEntrez le nom du fichier a creer : ";
cin >> nomFichier;
// --- Ouverture du fichier en écriture
pFichier = fopen(nomFichier,"wt");
//teste l'ouverture du fichier
if (pFichier == NULL) throw "Erreur d'ouverture du fichier en ecriture !";
// --- Boucle permettant à l'utilisateur de saisir de 1 à n mesures
while (true)
{
cout << "\nSaisie de la mesure " << n + 1 << endl;
cout << "- Nom (0=fin) : ";
cin >> Mesures[n].nom;
//condition permettant de quitter la saisie des mesures
if (Mesures[n].nom[0] == '0') break;
cout << "- Reference : ";
cin >> Mesures[n].reference;
cout << "- Resultat : ";
cin >> Mesures[n].resultat;
// --- Ecriture des données dans le fichier précédemment créé
fprintf(pFichier,"%s\n",Mesures[n].nom);
fprintf(pFichier,"%s\n",Mesures[n].reference);
fprintf(pFichier,"%ld\n",Mesures[n].resultat);
//incrémentation de la variable n
++n;
//condition permettant de mettre fin automatiquement à la saisie des mesures
if (n == 1000) break; // ouf !
}
// --- Fermeture du fichier
fclose(pFichier);
// ************************************************************
// Ouverture et écriture d'un fichier
// ************************************************************
// --- Ouverture du fichier en lecture
pFichier = fopen(nomFichier,"rt");
//teste l'ouverture du fichier
if (pFichier == NULL) throw "Erreur d'ouverture du fichier en lecture !";
// --- Boucle de lecture et d'affichage des mesures saisies
cout << endl << endl << endl;
//initialisation de la variable n à 0
n = 0;
//boucle permettant de lire l'intégralité du fichier
while (! feof(pFichier))
{
if (fscanf(pFichier,"%s",&Mesures[n].nom) != 1) break;
if (fscanf(pFichier,"%s",&Mesures[n].reference) != 1) break;
if (fscanf(pFichier,"%ld",&Mesures[n].resultat) != 1) break;
cout << "\nMesure " << n + 1 << endl;
cout << "- Nom : " << Mesures[n].nom << endl;
cout << "- Reference : " << Mesures[n].reference << endl;
cout << "- Resultat : " << Mesures[n].resultat << endl;
++n;
}
// --- Fermeture du fichier
fclose(pFichier);
} // fin de try
// --- Fonction permettant "d'attraper" les erreurs pour pouvoir les gérer ensuite
catch (const char* erreur)
{
cout << erreur << endl;
system("pause");
//fin de l'exécution du programme ==> anomalie
abort();
}
cout << endl;
system("pause");
return 0;
}
J'ai essayé de mettre un peu de couleur pour faire moins triste. J'ai retiré ce que j'ai fait car sinon je crois que je me serais fais tirer les oreilles, car il y avait des trucs pas très très propres.
Merci

M_didi 