Entrée et sortie C


Quand nous parlons de entrée, cela signifie remplir certaines données dans le programme. La saisie peut se faire sous la forme d'un fichier ou à partir de la ligne de commande. Le langage C fournit une série de fonctions intégrées pour lire l'entrée donnée et la remplir dans le programme selon les besoins.

Quand on dit sortie cela signifie afficher certaines données à l'écran, sur l'imprimante ou dans n'importe quel fichier. Le langage C fournit une série de fonctions intégrées pour afficher des données sur l'écran de l'ordinateur et enregistrer des données dans des fichiers texte ou des fichiers binaires.

Fichiers standards

Le langage C traite tous les appareils comme des fichiers. Les appareils (tels que les moniteurs) sont donc traités de la même manière que les fichiers. Les trois fichiers suivants sont automatiquement ouverts lors de l'exécution du programme pour donner accès au clavier et à l'écran.

标准文件文件指针设备
标准输入stdin键盘
标准输出stdout屏幕
标准错误stderr您的屏幕

Le pointeur de fichier est le moyen d'accéder aux fichiers. Cette section expliquera comment lire les valeurs à l'écran et comment afficher les résultats à l'écran.

Fonctions getchar() et putchar()

int getchar(void) La fonction lit le prochain caractère disponible à l'écran et le renvoie sous forme d'entier. Cette fonction ne lira qu'un seul caractère à la fois. Vous pouvez utiliser cette méthode dans une boucle pour lire plusieurs caractères à l'écran. La fonction

int putchar(int c) affiche les caractères à l'écran et renvoie les mêmes caractères. Cette fonction n'affichera qu'un seul caractère à la fois. Vous pouvez utiliser cette méthode dans une boucle pour afficher plusieurs caractères à l'écran.

Veuillez consulter l'exemple ci-dessous :

#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 attendra que vous saisissiez du texte lorsque vous entrez un texte et appuyez sur la touche Entrée. le programme continuera et ne lira qu'un seul caractère, comme indiqué ci-dessous :

$./a.out<b>Enter a value :</b> this is test<b>You entered:</b> t

fonction gets() & puts()

char *gets(char *s) La fonction lit une ligne de stdin dans le tampon pointé par s jusqu'à un terminateur ou EOF. La fonction

int puts(const char *s) écrit la chaîne s et un caractère de nouvelle ligne de fin dans stdout.

#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 saisissez un texte et appuyez sur Entrée, le programme continue et lit une ligne entière jusqu'à cette ligne. À la fin, le l'affichage est le suivant :

$./a.out<b>Enter a value :</b> this is test<b>You entered:</b> This is test

fonctions scanf() et printf()

int scanf(const char *format, ...) fonction à partir du flux d'entrée standard stdin lit l'entrée et parcourt l'entrée selon le format fourni.

int printf(const char *format, ...) La fonction écrit la sortie dans le flux de sortie standard stdout et produit une sortie selon le format fourni.

format peut être une simple chaîne constante, mais vous pouvez spécifier %s, %d, %c, %f, etc. pour afficher ou lire des chaînes, des entiers, des caractères respectivement ou flottants numéro de point. Il existe de nombreuses autres options de formatage disponibles qui peuvent être utilisées selon vos besoins. Pour plus de détails, consultez les manuels de référence pour ces fonctions. Approfondissons maintenant notre compréhension à travers l'exemple simple suivant :

#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 attendra que vous saisissiez du texte, lorsque vous saisissez un texte et appuyez sur la touche Entrée, le le programme continue et lit l'entrée, affichant ceci :

$./a.out<b>Enter a value :</b> seven 7<b>You entered:</b> seven 7

Ici, il convient de noter que scanf() s'attend à ce que l'entrée soit au même format que les %s et %d que vous lui avez donnés, ce qui signifie que vous Une entrée valide doit être fournie, telle que "chaîne entière", si vous fournissez "chaîne chaîne" ou "entier entier", cela sera considéré comme une mauvaise entrée. De plus, lors de la lecture d'une chaîne, scanf() arrêtera la lecture dès qu'il rencontrera un espace, donc "c'est un test" représente trois chaînes pour scanf().