Flots - streams -
Accueil

du site

Il s'agit là de procédures permettant d' afficher ou de saisir
des textes ou des nombres à l'écran.

Librairie "iostream"
Opérateur
Action
cout << variable à afficher Affichage multiformats sur l'écran
cin >> variable receptrice Entrée de données multiformat au clavier
endl Aller en début de la ligne suivante
ws Ecarte du flot tous les espaces, tabulations, sauts de ligne et de page retour chariot
setw(int) Impose la largeur d'affichage à int caractères. Texte et nombres sont alignés à droite.
setprecision(int) Impose le nombre de caractères du nombre affiché.
setfill(char) Remplace les espaces précédant le nombre par le caractère char.

Opérateur d'affichage cout

//-------------------------------------------------------------------------
// Programme de démonstration des possibilités de l'opérateur " cout << … "
//-------------------------------------------------------------------------
#include <iostream.h>

void main()
{
-int n = 12345;
-long N = 123456789;
-const double Pi = 3.14159265359;

-char *p;
-p = " Salut la compagnie !";

-cout << n ; //type int
-cout << '\n'; //type caractère (retour à la ligne)
-cout << N << endl ; //Symbole de retour à la ligne plus facile à écrire
-cout << "Voici le nombre pi : " << Pi << endl; //types chaîne et double
-cout << p << endl ; //type chaîne de carcatères
-//Remarquer les possibilités de concaténation de l'opérateur <<
}

L'intérêt de l'opérateur "cout" est qu'il s'arrange de lui même avec les divers types
de variables qu'on lui propose d'afficher.
Affichage à l'exécution

12345
123456789
Voici le nombre pi : 3.14159265359
Salut la compagnie !
Press any key to continue

Opérateur de saisie cin

//----------------------------------------------------
//Programme, objet : démonstration des flots (streams)
//----------------------------------------------------
#include < iostream.h >

int main()
{
-long n;
-double N;
-char Caractere;
-char Chaine[81];

-cout << "Entrez un nombre entier : " ;
-cin >> n;
-cout << "L'entier saisi est : " << n << '\n';
- -// Les apostrophes autour de \n précisent le type caractère
-
-// de ce symbole qui signifie "retour à la ligne"
-
-// Remarquez les possibilités de concaténation des commandes

-cout << "Entrez un nombre réel : " ;
-cin >> N;
-cout << "Le réel saisi est : " << N << endl; // endl : retour à la ligne
-cout << "Entrez un caractère : " ;
-cin >> Caractere;
-cout << "Le caractère saisi est : " << Caractere << endl;
-cout << "Entrez une chaîne de caractères : " ;
-cin >> Chaine ;
-cout << "La chaîne entrée est : " << Chaine << endl;

-return 0;
}

Affichage à l'exécution

Entrez un nombre entier : 987
L'entier saisi est : 987
Entrez un nombre réel : 12.34
Le réel saisi est : 12.34
Entrez un caractère : @
Le caractère saisi est : @
Entrez une chaîne de caractères : Comment allez-vous ?
La chaîne entrée est : Comment
Press any key to continue


Nous avons coloré les données entrées indépendantes du programme

Remarquer que la saisie d'une chaîne par "cin"
s'arrête au premier espace !

 

On trouve dans le fichier iostream.h des opérateurs permettant de formater les entrées et sorties liées à cin et cout. D'autres opérateurs se trouvent dans le fichier iomanip.h.

3.3.1 Fin de flot · flush :
une instruction du type cout << " Chaîne " crée un espace mémoire temporaire dans lequel est placé l'argument à afficher (ici " Chaîne ").
Le contenu de cette mémoire sera ensuite envoyé à l'écran dans un contexte d'exécution de processus parallèles par le système d'exploitation. Cela peut se faire par séquences qui peuvent fort bien être interrompues par d'autres processus plus prioritaires, s'ils existent.
Le manipulateur flush force le vidage intégral et ininterrompu du contenu de l'espace mémoire vers l'écran , puis sa libération. ·

endl (ENDL en minuscules) introduit un retour à la ligne ( \n ) suivi d'un flush. cout << " Salut ! " << flush ; cout << " Salut ! " << endl ;

3.3.2 Formatage du système de numération ·
dec oct hex opèrent la conversion de système de numération. Se reporter au programme de démonstration détaillé plus loin.

3.3.3 Formatage de la présentation sur l'écran

  • ws écarte du flot tous les espaces, tabulations, sauts de ligne et de page retour chariot
  • setw(int) impose la largeur d'affichage à int caractères. Texte et nombres sont alignés à droite.
  • setprecision(int) impose le nombre de caractères du nombre affiché.
  • setfill(char) remplace les espaces précédant le nombre par le caractère char.

Se reporter aux programmes de démonstration détaillés ci-dessous.

// Programme en C++
// Démonstration des manipulateurs de formattage des flots (streams)

#include < iostream.h >
#include < iomanip.h >

int main()
{
long n;

cout << " Entrez un nombre ecrit en decimal : " ;
cin >> dec >> n ; // La conversion en décimal est inutile ici
cout << endl;

// Formatage du type de numération affiché
cout << "Traduit en octal : " << oct << n << endl ;
cout << "Traduit en hexadecimal : " << hex << n << endl ;
cout << "\n\n" ; //Espacement des affichages

//Formatage de la présentation
//Espace de 30 caractères pour le texte (aligné à droite)
//Puis espace de 10 caractères pour les nombres (alignés à droite)
cout<< setw(30)<< "Nombre en decimal :"<< dec << setw(10)<< n << endl;
cout<< setw(30)<< "Traduit en octal-:"<< oct << setw(10)<< n << endl;
cout<< setw(30)<< "Traduit en hexadecimal :" << hex << setw(10)
<< n << endl;
cout<< "\n\n" ; //Espacement des affichages

return 0;
}

Affichages à l'exécution
(les barres verticales sont des repères d'emplacements caractères)

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Entrez un nombre ecrit en decimal : 522
Traduit en octal : 74
Traduit en hexadecimal : 3c
...........
Nombre en decimal :-------522
------------Traduit en octal :------1012
------Traduit en hexadecimal :-------20a

Press any key to continue
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

#include < iostream.h >
#include < iomanip.h >

void main()
{
const double Pi = 3.14159265359 ;
cout << Pi << endl ;
cout << setprecision(9) << Pi << endl ;
cout << Pi / 2.0 << endl ;
cout << setprecision(2) << Pi << endl ;
cout << setw(15) << setfill('.') << setprecision(9) << Pi << endl ;
}

Affichages à l'exécution
(les barres verticales sont des repères d'emplacements caractères)

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.14159
3.14159265
1.57079633
3.1
.....3.14159265

Press any key to continue
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Sommaire Cours C
Accueil

du site