Cours complet pour apprendre à programmer en D


précédentsommairesuivant

11. Flux d'entrée et de sortie standards

Jusqu'ici, l'affichage de nos programmes s'effectuait dans la console. Bien qu'elle soit la destination dans la plupart des cas, en réalité les caractères sont envoyés dans les flux de sortie des programmes.

La sortie standard est basée sur les caractères : tous les objets à afficher sont d'abord convertis en leur représentation sous forme de caractères et sont ensuite envoyés vers la sortie un par un en tant que caractères. Par exemple, la valeur entière 100 que nous avons affichée dans le chapitre précédent n'est pas envoyée vers la sortie en tant que valeur 100, mais comme trois caractères : « 1 », « 0 », et « 0 ».

De façon similaire, ce que nous percevons normalement comme le clavier est en fait le flux d'entrée standard d'un programme et il est aussi basé sur les caractères. L'information vient toujours sous forme de caractères à convertir en données. Par exemple la valeur 42 vient en fait de l'entrée standard sous forme de caractères : « 4 » et « 2 ».

Ces conversions se font automatiquement.

Ce concept de caractères qui se suivent est appelé un flux de caractères. Comme l'entrée standard et la sortie standard du D correspondent à cette description, ce sont des flux de caractères.

Les noms des flux d'entrée standard et de sortie standard en D sont respectivement stdin et stdout.

Les opérations sur ces flux nécessitent normalement le nom du flux, un point, et l'opération, comme dans stream.operation(). Cependant, comme stdin et stdout sont très couramment utilisés, par commodité, les opérations standard les concernant peuvent être appelées sans qu'il y ait besoin de préciser le nom du flux et le point, comme dans operation().

writeln, que l'on a utilisé dans les chapitres précédents, est en effet la forme abrégée de stdout.writeln. De même, write est la forme abrégée de stdout.write. Du coup, le programme hello world peut aussi être écrit comme cela :

 
Sélectionnez
import std.stdio;
 
void main()
{
   stdout.writeln("Hello world!");
}

11-1. Exercice

Confirmez que write (ou writeln) fonctionne de la même manière que stdout.write (ou stdout.writeln).

SolutionEntrée standard et flux de sortie - Correction.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+