getchar/putchar: Copieur...
Le but de ce programme est de recopier sur le canal standard de sortie ce qui se présente par le canal d'entrée standard.
Il fonctionne de cette manière:
- Lecture d'un caractère.
- Tant que le caractère n'est pas le signal de fin de fichier:
- Sortir le caractère lu.
- Lire un nouveau caractère.
Code c (copy1.c) (12 lignes)
#include <stdio.h> void main (void) { int c; while (c!=EOF) { } }
Résultat
Je copie cette ligne
Je copie cette ligne
-
Si nous introduisons la caîne de caractères suivante : "Je copie cette ligne", au moment de valider la ligne par la touche [Enter], la ligne est intégralement recopiée...
Remarques copy1.c
- L'opérateur de relation != signifie "est différent de".
- Attention : l'utilisation de EOF (End Of File) est interprétée de différentes manières (égal à 0 ou à -1).
Nous pouvons donc définir la valeur de EOF comme constante au début du programme de cette manière: #define EOF -1 ou bien: #define EOF 0 afin de s'assurer que EOF sera bien interpreté. - Nous pouvons réduire le nombre d'instructions en positionnant la saisie du caractère dans la condition de la boucle while, ce qui nous amène au code du programme suivant : copy2.c...
Remarques copy2.c
- Profitons de ce programme pour nous rappeler l'importance des parenthèses...
En effet, (c=getchar())!=EOF est différent de c=(getchar()!=EOF). Ce dernier affecte la valeur 0 ou 1 à la variable c selon que getchar rencontre ou non la fin de fichier.
Version en cache
18/01/2025 21:48:25 Cette version de la page est en cache (à la date du 18/01/2025 21:48:25) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 02/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/c-getchar-putchar.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.