C - Entrée et Sortie
Lorsque nous disons Entrée , cela signifie introduire des données dans un programme. Une entrée peut être donnée sous la forme d'un fichier ou depuis la ligne de commande. La programmation en C fournit un ensemble de fonctions intégrées pour lire l'entrée donnée et la transmettre au programme selon les besoins.
Lorsque nous disons Sortie , cela signifie afficher certaines données à l'écran, sur une imprimante ou dans n'importe quel fichier. La programmation en C fournit un ensemble de fonctions intégrées pour afficher les données sur l'écran de l'ordinateur ainsi que pour les enregistrer dans des fichiers texte ou binaires.
Les fichiers standards
La programmation en C traite tous les appareils comme des fichiers. Ainsi, les périphériques tels que l'écran sont adressés de la même manière que les fichiers et les trois fichiers suivants sont automatiquement ouverts lorsqu'un programme s'exécute pour fournir un accès au clavier et à l'écran.
Fichier standard | Pointeur de fichier | Appareil |
---|---|---|
Saisie standard | stdin | Clavier |
Sortie standard | stdout | Écran |
Erreur type | stderr | Votre écran |
Les pointeurs de fichier sont les moyens d'accéder au fichier à des fins de lecture et d'écriture. Cette section explique comment lire les valeurs à l'écran et comment imprimer le résultat à l'écran.
Les fonctions getchar() et putchar()
Le int getchar(void) lit le prochain caractère disponible à l'écran et le renvoie sous la forme d'un entier. Cette fonction ne lit qu'un seul caractère à la fois. Vous pouvez utiliser cette méthode dans la boucle au cas où vous voudriez lire plus d'un caractère à l'écran.
Le int putchar(int c) La fonction place le caractère passé à l'écran et renvoie le même caractère. Cette fonction ne place qu'un seul caractère à la fois. Vous pouvez utiliser cette méthode dans la boucle si vous souhaitez afficher plusieurs caractères à l'écran. Vérifiez l'exemple suivant −
#include <stdio.h> int main( ) { int c; printf( "Enter a value :"); c = getchar( ); printf( "\nYou entered: "); putchar( c ); return 0; }
Lorsque le code ci-dessus est compilé et exécuté, il attend que vous saisissiez du texte. Lorsque vous entrez un texte et appuyez sur Entrée, le programme continue et ne lit qu'un seul caractère et l'affiche comme suit −
$./a.out Enter a value : this is test You entered: t
Les fonctions gets() et puts()
Le car *gets(char *s) la fonction lit une ligne de stdin dans le tampon pointé par s jusqu'à une nouvelle ligne de fin ou EOF (End of File).
Le int met(const char *s) la fonction écrit la chaîne 's' et 'a' fin de ligne dans stdout .
REMARQUE : Bien qu'il soit obsolète d'utiliser la fonction gets(), au lieu d'utiliser get, vous souhaitez utiliser fgets().
#include <stdio.h> int main( ) { char str[100]; printf( "Enter a value :"); gets( str ); printf( "\nYou entered: "); puts( str ); return 0; }
Lorsque le code ci-dessus est compilé et exécuté, il attend que vous saisissiez du texte. Lorsque vous entrez un texte et appuyez sur Entrée, le programme continue et lit la ligne complète jusqu'à la fin, et l'affiche comme suit −
$./a.out Enter a value : this is test You entered: this is test
Les fonctions scanf() et printf()
Le int scanf(const char *format, ...) la fonction lit l'entrée du flux d'entrée standard stdin et scanne cette entrée selon le format fourni.
Le int printf(const char *format, ...) la fonction écrit la sortie dans le flux de sortie standard stdout et produit la sortie selon le format fourni.
Le format peut être une simple chaîne constante, mais vous pouvez spécifier %s, %d, %c, %f, etc., pour imprimer ou lire respectivement des chaînes, des entiers, des caractères ou des flottants. Il existe de nombreuses autres options de formatage disponibles qui peuvent être utilisées en fonction des besoins. Continuons maintenant avec un exemple simple pour mieux comprendre les concepts −
#include <stdio.h> int main( ) { char str[100]; int i; printf( "Enter a value :"); scanf("%s %d", str, &i); printf( "\nYou entered: %s %d ", str, i); return 0; }
Lorsque le code ci-dessus est compilé et exécuté, il attend que vous saisissiez du texte. Lorsque vous entrez un texte et appuyez sur Entrée, le programme continue et lit l'entrée et l'affiche comme suit −
$./a.out Enter a value : seven 7 You entered: seven 7
Ici, il convient de noter que scanf() attend une entrée dans le même format que celui que vous avez fourni %s et %d, ce qui signifie que vous devez fournir des entrées valides comme "string integer". Si vous fournissez "string string" ou "integer integer", alors il sera considéré comme une mauvaise entrée. Deuxièmement, lors de la lecture d'une chaîne, scanf() arrête la lecture dès qu'il rencontre un espace, donc "ceci est un test" sont trois chaînes pour scanf().
Langue C