Skip to content
Snippets Groups Projects
cours-flux.md 3.38 KiB
jupytext:
  text_representation:
    extension: .md
    format_name: myst
    format_version: 0.13
kernelspec:
  display_name: C++17
  language: C++17
  name: xcpp17
rise:
  auto_select: first
  autolaunch: false
  centered: false
  controls: false
  enable_chalkboard: true
  height: 100%
  margin: 0
  maxScale: 1
  minScale: 1
  scroll: true
  slideNumber: true
  start_slideshow_at: selected
  transition: none
  width: 90%

+++ {"slideshow": {"slide_type": "note"}}

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"}}

Notion de flux de données

+++ {"slideshow": {"slide_type": "fragment"}}

::::{admonition} Définition

Un flux sortant est un dispositif où l’on peut écrire des données, successivement l’une après l’autre.

:::{admonition} Syntaxe

flux << expression

:::

:::{admonition} Sémantique Écrit la valeur de l'expression dans le flux. La valeur est convertie en texte en fonction de son type. :::

% +++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Remarque :class: hint On peut enchaîner l'écriture successive de plusieurs expressions :

flux << expression1 << expression2 << expression3;

::: ::::

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Exemples de flux sortants

  • cout : sortie standard du programme
    Typiquement : écran
    :clubs: Avec tampon
  • cerr : sortie d’erreur du programme
    :clubs: Sans tampon :::
---
slideshow:
  slide_type: fragment
---
#include <iostream>
using namespace std;

cout << "Noël " << 42 << endl;

+++ {"slideshow": {"slide_type": "slide"}}

::::{admonition} Définition Un flux entrant est un dispositif où l’on peut lire des données, successivement l’une après l’autre.

:::{admonition} Syntaxe

flux >> variable;

:::

:::{admonition} Sémantique Lit une valeur depuis le flux et l'affecte à la variable. Le type de la variable est utilisé pour déterminer comment lire la variable. :::

% +++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Remarque :class: hint On peut enchaîner la lecture successive de plusieurs variables :

flux >> variable1 >> variable2 >> variable3;

::: ::::

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Exemple de flux entrant

  • cin : entrée standard du programme
    Typiquement : clavier :::
---
slideshow:
  slide_type: fragment
---
string nom;
cout << "Comment t'appelles-tu?" << endl;
cin >> nom;
nom

+++ {"slideshow": {"slide_type": "slide"}}

:::{admonition} Astuce mnémotechnique :class: hint Le sens des chevrons met en valeur dans quel sens se déplacent les informations :

  • flux << expression : de l'expression vers le flux;
  • flux >> variable : du flux vers la variable. :::

+++ {"slideshow": {"slide_type": "slide"}}

:::{admonition} Astuce mnémotechnique :class: hint En anglais, «flux» se dit «stream», «entrée» «input» et «sortie» «output».

D'où le nom de la bibliothèque iostream qui définit le flux (stream) entrant (i) cin et les flux sortants (o) cout et cerr. :::