Algorithme et Programmation
IUP 1 - Année 2002/2003
TP n°4
Introduction
Les points abordés dans ce TP sont :
getchar
et putchar
Ce qui est à faire :
Un flux est une notion utilisée en programmation pour représenter un flot de données séquentielles
en provenance ou à destination d'un périphérique (clavier, écran, disque, imprimante, réseau, ...) ou d'un fichier.
Les programmes C disposent dès leur lancement de trois flux dîts standards :
stdin
(standard input) flux d'entrée standard :
par défaut, branché sur le clavierstdout
(standard output) flux de sortie standard :
par défaut, branché sur l'écranstderr
(standard error output) flux de sortie d'erreur standard (pour y envoyer les messages d'erreur) :
par défaut, branché sur l'écran.
Le système Unix permet de rediriger les flux standards des programmes
afin de leur faire lire des données provenant d'une autre source que le clavier,
ou, de leur faire écrire des résultats sur une autre destination que l'écran.
Les deux principales fonctions pour recevoir ou envoyer des données sur les flux d'entrée / sortie standards
sont printf
et scanf
qui sont des fonctions puissantes permettant de spécifier
avec précision le type, la position et les options de format des données
(cf. TP 2).
En réalité, ces fonctions font appel à des fonctions plus basiques qui transmettent un seul caractère :
getchar
qui n'a pas d'argument et dont le résultat est le prochain caractère
présent sur l'entrée standardEOF
s'il n'y a plus de caractère à lire.EOF
est la notation C d'un caractère qui signifie fin de fichier "End Of File" en anglais
et qui est obtenu au clavier par Ctrl+D
)putchar
est une fonction sans résultat qui prend un seul argument de type char
et qui envoie le caractère sur la sortie standard.stdio.h
.
catdemo.c
. Il s'agit d'un programme C donné en exemple.catdemo
au code éxecutable.
Que fait ce programme ?
catdemo > toto bonjour Ctrl+D
catdemo < toto
catdemo
avec la commande cat
du système Unix : catdemo
par cat
. cat
? (utilisez la commande man cat
)
wc
(word count) :
La commande wc
compte le nombre de lignes, de mots ou de caractères d'un fichier.wc
.
/*
et */
et ils ne peuvent pas etre imbriqués.-E
du compilateur gcc
qui arrête le processus de compilation
juste après que le préprocesseur ait terminé.gcc -E toto.c
affiche
le résultat du traitement du fichier toto.c
par le préprocesseur.