/* Fichier texte.cpp */ #include // pour entrée-sortie cin, cout #include // pour le formatage #include // pour les fichiers using namespace std; // librairie standard // pour consulter l'écran d'exécution void continuer() { char reponse ; cout << "\nAppuyez sur une lettre suivie de Entree " ; cin >> reponse ; } /* cette fonction est expliquée en classe : Elle permet de lire le fichier à partir de son nom, de remplir les 4 tableaux et de transmettre via pointeur le nombre de personnes lues. */ void lireRemplir(const char nomALire[], char sexe[], int numero[], float taille[], float poids[], int & n) { const float PIED_EN_METRE = 0.3048, LIVRE_EN_KG = 0.454; int nbPieds, nbPouces, nbLivres; ifstream aLire (nomALire, ios::in); // localiser et ouvrir pour la lecture n = 0; // initialiser le compteur while (aLire >> sexe[n] >> numero[n] >> nbPieds >> nbPouces >> nbLivres) { taille[n] = (nbPieds + nbPouces /12.0) * PIED_EN_METRE; poids[n] = nbLivres * LIVRE_EN_KG ; n++; } aLire.close(); } void creer(const char nomACreer[], char sexeVoulu, int numero[], char sexe[], float taille[], int nbPers) { ofstream aCreer (nomACreer, ios::out); aCreer.setf(ios::fixed); aCreer.setf(ios::showpoint); for (int i = 0; i < nbPers; i++) if (sexe[i] == sexeVoulu) aCreer << sexe[i] << setw(7) << numero[i] << setw(8) << setprecision(2) << taille[i] << endl; aCreer.close(); } int main() { /* déclaration de 4 tableaux et du nombre de personnes lues qui est aussi le nombre d'éléments de ces 4 tableaux */ const int MAX_PERS = 25; int numero[MAX_PERS]; char sexe[MAX_PERS]; float taille[MAX_PERS], poids[MAX_PERS]; int nbPers ; lireRemplir("imp_e14.txt", sexe, numero, taille, poids, nbPers); cout << "On vient de lire les informations de " << nbPers << " personnes\n\n" ; creer("femme.txt", 'F', numero, sexe, taille , nbPers); continuer(); return 0; } /* Exécution: On vient de lire les informations de 20 personnes Appuyez sur une lettre suivie de Entree */