Fichiers et flux#
Prélude#
Annonces#
Examen mi semestre
À moitié corrigé
Projet
Disponible au téléchargement d'ici mercredi
Bureau d'Intervention Pédagogique
de l'aide individuelle en libre service
tous les jours, 12h30-14h30, salle 160 du 333
En informatique : lundi et jeudi 15h45-17h45, salle libre service 215
Visite d'un journaliste
Quand: lundi 24 novembre, 10h30-12h30 (pendant et après l'amphi MI)
Quoi: observation, quelques photos, microtrottoir
Pourquoi: préparation d'une émission sur
grandlabo.comsur IA et pédagogiqueDans la pratique: si vous ne souhaitez pas apparaître sur les photos, asseyez vous côté fenêtre
Résumé des épisodes précédents#
Manipulation de collections de données
Fil conducteur : Implantation d'un annuaire
Tableaux : valeurs composites homogènes:
vector<...>Sémantique, modèle mémoire avec pile et tas
Généralisations: collections
La boucle «pour tout» :
for ( auto valeur: collection ) { ... }Les tableaux à deux dimensions:
vector<vector<...>>
Étude de cas : afficher un annuaire#
Revenons sur le programme que nous avions écrit pour afficher un annuaire :
#include<vector>
#include<iostream>
using namespace std;
vector<string> noms = {
"Jeanne",
"Franck",
"Marie",
"Joël"
};
vector<string> telephones = {
"04 23 23 54 56",
"03 23 42 34 26",
"06 52 95 56 06",
"07 23 63 92 38"
};
for ( int i = 0; i < noms.size(); i++ ) {
cout << noms[i] << " " << telephones[i] << endl;
}
Imaginons que le carnet de contacts sur nos téléphones adopte la même approche. Les données étant une partie intégrante du programme, nous devrions chacun avoir un programme différent, alors que seules les données changent d'une personne à l'autre.
De plus, toute modification dans l'annuaire est volatile : toute modification qui a pu avoir lieu pendant l'exécution du programme (par exemple l'ajout d'un contact) est perdue au moment où celui-ci s'arrête.
Besoins
d'une séparation claire entre programme et données;
d'un stockage persistant des données.
C'est ce que les fichiers vont nous apporter:
Objectif
Données: un fichier
annuaire.txtJean-Claude 0645235432 Albane 0734534534 Djamila +1150343234 Tibo 0634534534
Un programme
Reste à définir la notion de fichier et à voir comment les manipuler en C++.
Au programme#
Cours : flux de données
Cours : fichiers, lecture, écriture
Cours : état d'un fichier
Résumé du cours#
Les fichiers
Comment lire et écrire dans des fichiers en C++
Les flux
Un concept uniforme pour lire et écrire :
Entrée et sortie standard et sortie d'erreur d’un programme :
cin,cout,cerrFichiers :
ifstream,ofstreamChaînes de caractères :
istringstream,ostringstreamConnexions avec d'autres programmes
Rappel des annonces
Examen mi semestre : sujet et solution sur la page web
Projet: première TP dédié la semaine prochaine; avancez d'ici là!
Bureau d'Intervention Pédagogique: maths, physique ET informatique
Visite journaliste: amphi 10, lundi 24 novembre, MI
Comment vous sentez-vous en ce début de cours?#
Curieux
Grognon
Inquiet
Épuisé