diff --git a/.gradebook.db b/.gradebook.db
index 24f04d0e1f5217aa679ad5883d4fed3e1895787a..095710177373085e56bbaffc2cac368d729f0c51 100644
Binary files a/.gradebook.db and b/.gradebook.db differ
diff --git a/TD.md b/TD.md
index 9cca5e624b6312ebfe6b09154e870bceb7443f4b..32917ef6e07d7f657a7efe5ecaa95384e156479e 100644
--- a/TD.md
+++ b/TD.md
@@ -147,7 +147,7 @@ numérique (discrète). Il en existe deux grandes catégories :
 
 % {raw:latex}`\clearpage`
 
-+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "696d89dd98b4217c97e8f8f9da12c80c", "grade": true, "grade_id": "40", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
++++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "541fa69d3773a8dd58dce87cd6cc360e", "grade": true, "grade_id": "40", "locked": false, "points": 0, "schema_version": 3, "solution": true}}
 
 ::::{admonition} Exercice 4 : $\clubsuit$
 
@@ -184,11 +184,11 @@ suivante :
 
 ``` c++
 /** lit une ligne d'un flux et la stocke dans une chaîne de caractères
- *  @param f un flux entrant
+ *  @param flux un flux entrant
  *  @param s une chaîne de caractères
  *  @return le flux entrant
  **/
-istream getline(istream &f, string &s);
+istream getline(istream &flux, string &s);
 ```
 
 % REMPLACEZ CETTE LIGNE PAR VOTRE RÉPONSE
diff --git a/cours-etat-fichier.md b/cours-etat-fichier.md
index 5ebfb51e8f3e750d90e51d1a6969fb12f1c27608..2b61684b457d5ff1e2fb9a5d69afe96e8ace7dbc 100644
--- a/cours-etat-fichier.md
+++ b/cours-etat-fichier.md
@@ -27,11 +27,11 @@ rise:
 
 +++ {"slideshow": {"slide_type": "slide"}}
 
-# État d'un fichier (ou d'un flux)
+# État d'un flux
 
 +++ {"slideshow": {"slide_type": "slide"}}
 
-Jusqu'ici nous avions principalement fait du calcul.  Dans ces
+Jusqu'ici nous avions principalement fait du calcul. Dans ces
 derniers, les situations exceptionnelles sont relativement rares :
 divisions par zéro, préconditions, ...
 
@@ -49,7 +49,7 @@ De ce fait, les opérations peuvent échouer.
 
 Dans cette feuille, nous allons voir comment détecter ces échecs pour
 pouvoir ensuite les gérer. Cela utilisera la notion d'**état d'un
-fichier**.
+flux**.
 
 +++ {"slideshow": {"slide_type": "slide"}}
 
@@ -144,18 +144,18 @@ entrées une à une tant que la lecture se passe bien.
 
 +++ {"slideshow": {"slide_type": "slide"}}
 
-### État d’un fichier
+### État d’un flux
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
 :::{admonition} Définition
-Une variable de type fichier peut être dans un ***bon état*** :
+Une variable de type flux peut être dans un ***bon état*** :
 
 -   «jusqu’ici tout va bien»
 
 ou un ***mauvais état*** :
 
--   fichier non trouvé à l’ouverture, problème de permissions
+-   fichier non trouvé à l’ouverture ou problème de permissions
 -   lecture ou écriture incorrecte
 -   fin du fichier atteinte
 -   plus de place disque
@@ -166,10 +166,10 @@ ou un ***mauvais état*** :
 
 :::{admonition} Syntaxe
 ``` c++
-        if ( fichier ) { ...
+        if ( flux ) { ...
 ```
 ``` c++
-        if ( fichier >> i ) { ...
+        if ( flux >> i ) { ...
 ```
 :::
 
@@ -250,7 +250,7 @@ annuaire.close();
 
 +++ {"slideshow": {"slide_type": "slide"}}
 
-### Bonne pratique : vérifier l’état d’un fichier
+### Bonne pratique : vérifier l’état d’un flux
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
@@ -260,7 +260,7 @@ L'autre inconnue est : le fichier existe-t-il?
 
 :::{hint} Bonne pratique
 
-Toujours vérifier l'état d'un fichier après toute opération pouvant
+Toujours vérifier l'état d'un flux après toute opération pouvant
 échouer, et notamment l'ouverture
 
 :::
@@ -284,7 +284,7 @@ using namespace std;
 slideshow:
   slide_type: fragment
 ---
-ifstream fichier;
+ifstream flux;
 ```
 
 ```{code-cell}
@@ -292,7 +292,7 @@ ifstream fichier;
 slideshow:
   slide_type: fragment
 ---
-fichier.open("annuaire.txt"); // Un fichier existant
+flux.open("annuaire.txt"); // Un fichier existant
 ```
 
 ```{code-cell}
@@ -300,7 +300,7 @@ fichier.open("annuaire.txt"); // Un fichier existant
 slideshow:
   slide_type: fragment
 ---
-if ( not fichier ) {
+if ( not flux ) {
     cout << "Erreur à l'ouverture" << endl;
 }
 ```
@@ -310,7 +310,7 @@ if ( not fichier ) {
 slideshow:
   slide_type: fragment
 ---
-fichier.close();
+flux.close();
 ```
 
 ```{code-cell}
@@ -318,7 +318,7 @@ fichier.close();
 slideshow:
   slide_type: fragment
 ---
-fichier.open("oups.txt");    // Un fichier non existant
+flux.open("oups.txt");    // Un fichier non existant
 ```
 
 ```{code-cell}
@@ -326,17 +326,20 @@ fichier.open("oups.txt");    // Un fichier non existant
 slideshow:
   slide_type: fragment
 ---
-if ( not fichier ) {
+if ( not flux ) {
     cout << "Erreur à l'ouverture" << endl;
 }
 ```
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
-:::{hint} Bonne pratique
+:::{admonition} Bonne pratique
+:class: hint
+
 Pour mieux signaler cette situation exceptionnelle, il est recommandé
-d'utiliser les **exceptions**, que nous avons introduites lors du
-[cours précédent](../Semaine7/cours-exceptions.md).
+d'utiliser une **exception** (voir
+[Semaine7](../Semaine7/cours-exceptions.md)).
+
 :::
 
 ```{code-cell}
@@ -352,7 +355,7 @@ slideshow:
 slideshow:
   slide_type: fragment
 ---
-if ( not fichier ) {
+if ( not flux ) {
     throw runtime_error("Erreur à l'ouverture du fichier");
 }
 ```
@@ -361,14 +364,14 @@ if ( not fichier ) {
 
 ## Résumé
 
-Lorsque l'on manipule des fichiers, les opérations sont succeptibles
-d'échouer. Dans cette feuille, nous avons vu que la notion d'**état de
-fichier** permet de détecter de tels échecs pour les traiter. Il est
-fortement recommandé de **systématiquement vérifier l'état du fichier
-après toute opération pouvant échouer**, et tout particulièrement
-après l'ouverture d'un fichier, et de **signaler un tel échec au moyen
-d'une exception**.
+Lorsque l'on manipule des fichiers et des flux, les opérations sont
+susceptibles d'échouer. Dans cette feuille, nous avons vu que la
+notion d'**état de flux** permet de détecter de tels échecs pour les
+traiter. Il est fortement recommandé de **systématiquement vérifier
+l'état du flux après toute opération pouvant échouer**, et tout
+particulièrement après l'ouverture d'un fichier, et de **signaler un
+tel échec au moyen d'une exception**.
 
-La notion d'état d'un fichier peut aussi être mise à profit avec
-l'idiome «lire dans un fichier tant que la lecture se passe bien».
+La notion d'état d'un flux s'utilise naturellement avec l'idiome «lire
+depuis un flux tant que la lecture se passe bien».
 
diff --git a/cours-fichiers.md b/cours-fichiers.md
index 4d40abb876bdcf136efa69bcbd3f084fa04175b9..25702dc55dc5bd076c1d38575935938603e60913 100644
--- a/cours-fichiers.md
+++ b/cours-fichiers.md
@@ -77,7 +77,7 @@ slideshow:
   slide_type: fragment
 ---
 // Déclaration
-ofstream  fichier;
+ofstream  flux;
 ```
 
 ```{code-cell}
@@ -86,7 +86,7 @@ slideshow:
   slide_type: fragment
 ---
 // Ouverture
-fichier.open("bla.txt");
+flux.open("bla.txt");
 ```
 
 ```{code-cell}
@@ -95,7 +95,7 @@ slideshow:
   slide_type: fragment
 ---
 // Écriture
-fichier << "Noël " << 42 << endl;
+flux << "Noël " << 42 << endl;
 ```
 
 ```{code-cell}
@@ -104,7 +104,7 @@ slideshow:
   slide_type: fragment
 ---
 // Fermeture
-fichier.close();
+flux.close();
 ```
 
 +++ {"slideshow": {"slide_type": "slide"}}
@@ -113,7 +113,7 @@ fichier.close();
 
 Écrire dans un fichier se fait  en **quatre étapes** :
 
-1.  Déclaration
+1.  Déclaration du flux
 2.  Ouverture du fichier
 3.  Écriture
 4.  Fermeture du fichier
@@ -143,7 +143,7 @@ slideshow:
   slide_type: fragment
 ---
 // Déclaration
-ifstream fichier;
+ifstream flux;
 ```
 
 ```{code-cell}
@@ -152,7 +152,7 @@ slideshow:
   slide_type: fragment
 ---
 // Ouverture du fichier
-fichier.open("bla.txt");
+flux.open("bla.txt");
 ```
 
 ```{code-cell}
@@ -162,7 +162,7 @@ slideshow:
 ---
 string s;
 // Lecture
-fichier >> s;
+flux >> s;
 s
 ```
 
@@ -172,7 +172,7 @@ slideshow:
   slide_type: fragment
 ---
 int i;
-fichier >> i;
+flux >> i;
 i
 ```
 
@@ -182,20 +182,47 @@ slideshow:
   slide_type: fragment
 ---
 // Fermeture du fichier
-fichier.close();
+flux.close();
 ```
 
 +++ {"slideshow": {"slide_type": "slide"}}
 
 :::{admonition} À retenir
+:class: hint
 
 De même que l'écriture dans un fichier, la lecture se fait en **quatre
 étapes** :
 
-1.  Déclaration
+1.  Déclaration du flux
 2.  Ouverture du fichier
 3.  Lecture
 4.  Fermeture du fichier
 
 :::
 
++++ {"slideshow": {"slide_type": "slide"}}
+
+:::{admonition} À retenir
+:class: hint
+
+- La lecture et l'écriture se fait en fonction du type des données.
+- À la lecture, les espaces, tabulations et sauts de lignes servent de
+  séparateurs entre entiers, mots, etc.
+
+:::
+
++++ {"slideshow": {"slide_type": "fragment"}}
+
+:::{admonition} À retenir
+:class: hint
+
+Comme nous utilisons un flux pour lire depuis un fichier, la lecture
+se fait de façon séquentielle depuis le début du fichier. De même pour
+l'écriture, il est nécessaire de réécrire l'intégralité du fichier.
+
+Il existe d'autres façons d'accéder à un fichier permettant de n'en
+lire ou n'en modifier qu'une fraction -- on parler d'accès aléatoire
+(*random access*) -- mais nous n'en aurons pas besoin ce semestre.
+
+:::
+
diff --git a/cours-flux-chaines-de-caracteres.md b/cours-flux-chaines-de-caracteres.md
index 1f6290bce804268320a1e738726ea0d5c445ae12..dd2c1a238f20acceb23f2e40b4a1ecf4b338ab8f 100644
--- a/cours-flux-chaines-de-caracteres.md
+++ b/cours-flux-chaines-de-caracteres.md
@@ -81,9 +81,8 @@ Comment extraire ces nombres de `s`?
 +++ {"slideshow": {"slide_type": "notes"}}
 
 On souhaiterait extraire ces nombres en les convertissant en entiers.
-Pour cela on créé un *flux* de type `istringstream` (nous verrons dans
-la feuille suivante ce qu'est un flux et la signification du nom
-`istringstream`) :
+Pour cela on créé un *flux* de type `istringstream` (pour flux entrant
+depuis une chaîne de caractères) rattaché à `s` :
 
 ```{code-cell}
 ---
@@ -150,14 +149,15 @@ i
 +++ {"slideshow": {"slide_type": "slide"}}
 
 L'exemple suivant illustre que l'on peut lire successivement des
-valeurs de types mixtes, et que l'on peut chaîner ces lectures :
+valeurs de types mixtes, qu'un nombre quelconque d'espaces sert de
+séparateur, et que l'on peut enchaîner ces lectures :
 
 ```{code-cell}
 ---
 slideshow:
   slide_type: fragment
 ---
-string s = "truc 33 bidule 2.5 reste"
+string s = "truc 33   bidule   2.5 reste"
 ```
 
 ```{code-cell}
@@ -258,9 +258,8 @@ caractères. Le principe sera le même que pour une lecture.
 
 +++ {"slideshow": {"slide_type": "fragment"}}
 
-On commence par définir un flux de type `ostringstream` (là encore,
-nous verrons dans la feuille suivante la signification du nom de ce
-type) :
+On commence par définir un flux de type `ostringstream` (pour flux
+sortant vers une chaîne de caractères) :
 
 ```{code-cell}
 ---
@@ -464,9 +463,11 @@ CHECK( formateEntreeAnnuaire("Lovelace", "Ada", "07 23 23 23 23")
 ## Résumé
 
 Dans cette feuille:
-- nous avons vu comment **lire et écrire** des données de types divers **dans des chaînes de caractères**.
-- Nous l'avons appliqué pour mieux séparer **fonctions qui calculent** et **fonctions d'entrées-sorties**.
-- Enfin nous avons noté que l'on utilise la même syntaxe que pour lire et écrire dans un fichier ou
-  pour interagir avec l'utilisateur.  
-  Cela est rendu possible par le concept de flux qui est le sujet de la [feuille suivante](cours-flux.md).
+- nous avons vu comment **lire et écrire** des données de types divers
+  **dans des chaînes de caractères**.
+- Nous l'avons appliqué pour mieux séparer **fonctions qui calculent**
+  et **fonctions d'entrées-sorties**.
+- Enfin nous avons noté que, grâce au concept de flux, on peut
+  utiliser la même syntaxe que pour lire et écrire dans un fichier ou
+  pour interagir avec l'utilisateur.
 
diff --git a/cours-flux.md b/cours-flux.md
index 5bd95188e3c1385c6ca88ffe81678a6a16055704..5910aea76564d1dd4aa244d7cc6fbc45af57c2a0 100644
--- a/cours-flux.md
+++ b/cours-flux.md
@@ -27,11 +27,11 @@ rise:
 
 +++ {"slideshow": {"slide_type": "note"}}
 
-Avant de voir comment lire et écrire dans un fichier, nous avions vu
-comment afficher; c'est-à-dire écrire à l'écran au moyen de
-`cout`. Nous avons occasionnellement vu comment lire depuis le clavier
-`cin`. Nous allons maintenant formaliser cela et introduire la notion
-de flux.
+Les semaines précédentes, nous avons vu comment afficher; c'est-à-dire
+écrire à l'écran au moyen de `cout`. Nous avons occasionnellement vu
+comment lire depuis le clavier avec `cin`. Nous allons maintenant
+formaliser cela et introduire la notion de flux qui nous servira
+ensuite pour lire et écrire dans des fichiers.
 
 +++ {"slideshow": {"slide_type": "slide"}}