C - Entrée et sortie

Quand on dit Input, cela signifie introduire des données dans un programme. Une entrée peut être donnée sous forme de fichier ou à partir de la ligne de commande. La programmation C fournit un ensemble de fonctions intégrées pour lire l'entrée donnée et la transmettre au programme selon les besoins.

Quand on dit Output, cela signifie afficher certaines données à l'écran, sur l'imprimante ou dans n'importe quel fichier. La programmation 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 standard

La programmation C traite tous les appareils comme des fichiers. Ainsi, les périphériques tels que l'affichage 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 donner accès au clavier et à l'écran.

Fichier standard Pointeur de fichier Dispositif
Entrée standard stdin Clavier
Sortie standard stdout Écran
Erreur standard stderr Votre écran

Les pointeurs de fichier sont le moyen 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)La fonction lit le prochain caractère disponible de l'écran et le renvoie sous forme d'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 met le caractère passé à l'écran et renvoie le même caractère. Cette fonction ne met qu'un seul caractère à la fois. Vous pouvez utiliser cette méthode dans la boucle au cas où vous souhaiteriez afficher plus d'un caractère à 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 put ()

le char *gets(char *s) fonction lit une ligne depuis stdin dans le tampon pointé par s jusqu'à une nouvelle ligne de fin ou EOF (fin de fichier).

le int puts(const char *s) La fonction écrit la chaîne «s» et «a» fin de ligne dans stdout.

NOTE:Bien qu'il soit déconseillé d'utiliser la fonction gets (), au lieu d'utiliser gets, vous voulez 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 à condition de.

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 formatpeut être une simple chaîne constante, mais vous pouvez spécifier% s,% d,% c,% f, etc., pour imprimer ou lire respectivement des chaînes, un entier, un caractère ou un flottant. Il existe de nombreuses autres options de formatage disponibles qui peuvent être utilisées en fonction des besoins. Passons maintenant à 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 se poursuit 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 vous avez fourni% s et% d, ce qui signifie que vous devez fournir des entrées valides telles que "string integer". Si vous fournissez "chaîne de caractères" ou "entier entier", alors il sera considéré comme une entrée incorrecte. Deuxièmement, lors de la lecture d'une chaîne, scanf () arrête la lecture dès qu'il rencontre un espace, donc "this is test" sont trois chaînes pour scanf ().