Manipulation fichier texte

bencholl Messages postés 1 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 17 avril 2003 - 17 avril 2003 à 09:41
Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 - 20 avril 2003 à 13:07
I / Utilisation de fichiers texteLe fichier "Etud_2002.don" comporte des lignes ainsi structurées (le caractère ';' est utilisé comme séparateur) : NOM;Prénom;jj/mm/aaaa;taille
nom et prenom : des chaînes de caractères (taille variable) représentant un nom et un prénom ; jj/mm/aaaa : un date (de naissance) ; un entier représentant une taille (en cm)

I – 1 / Ecrire une fonction qui lit un enregistrement (une ligne) dans le fichier et initialise pour chaque ligne les variables ainsi définies (Date est une structure définie par trois champs j, m et a de type entier) et retourne une structure Etud comportant les différentes rubriques lues:
string Nom, // ou char * Prenom;
Date DatNaiss;
int Taille;

Cette fonction reçoit en paramètre un ifstream ou fstream : (ftream &fetud, …) par exemple.Afficher le contenu de la structure retournée par la fonction ci-dessus sur 4 colonnes alignées. Pour obtenir une présentation en colonnes, il est possible d'utiliser des manipulateurs (#include ). Sachant que l'affichage par défaut correspond à un cadrage à droite, ce qui est satisfaisant pour les nombres, alors que les chaînes de caractères sont souvent cadrées à gauche, il est possible d'écrire, à titre d'exemple, un code comme ci-dessous :
// cadrage à gauche dans un "masque" de 25 caractères de nom
// cadrage à droite dans un "masque" de 5 caractères de taille
cout << setiosflags (ios::left) << setw (25) << nom << resetiosflags (ios::right) << setw (5) << taille << endl;
(utiliser une fonction pour réaliser cet affichage)

I – 2 / Définir un vecteur dont les éléments sont de type Etud (faire une allocation dynamique du vecteur en utilisant l'opérateur new). Trier le vecteur successivement sur la taille et sur la date de naissance (s'inspirer du code vu en cours : structure MaDate) et afficher le résultat dans les deux cas en respectant l'affichage de la question 1.

I – 3 / Modifier la fonction d'affichage pour que le contenu affiché soit écrit dans un fichier texte (écrire dans un fichier texte est identique à afficher sur l'écran : si f est le "fstream" désignant le fichier, il suffit de remplacer cout << par f <<.
En fin de test du programme, fermer le fichier et charger son contenu dans le Bloc-Notes ce qui produit un affichage plus "agréable" que celui obtenu en "mode console". Pour réaliser ceci, il faut utiliser une fonction de la famille spawn (non standard).

// vérification exécution dans Bloc-notes
// nécessite #include spawnlp (0, "NOTEPAD.EXE", "NOTEPAD.EXE", "Resultat.txt", NULL);

2 réponses

NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
20 avril 2003 à 06:07
Quoi? La question elle est ou?
Tu veux que l'on écrive le code à ta place???

Oublie ca toute suite ...
Fait ce que tu vient d'expliquer et tu vas
très bien t'en sortir ...

~(.:: NitRic ::.)~
0
Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 1
20 avril 2003 à 13:07
Krox68
t nul pour pas savoir sa...
0
Rejoignez-nous