Maison >développement back-end >Tutoriel C#.Net >Différence entre scanf() et gets() en C (exemple de code)
Fonction scanf()
Elle est utilisée pour lire l'entrée (char, char) à partir de l'entrée standard (clavier ) chaîne, données numériques).
Il est utilisé pour lire l'entrée jusqu'à ce qu'un espace, un caractère de nouvelle ligne ou une fin de fichier (EOF) soit rencontré.
Par exemple, voir le code suivant :
#include <stdio.h> int main() { char str[20]; printf("enter something\n"); scanf("%s", str); printf("you entered: %s\n", str); return 0; }
L'entrée ici sera fournie par l'utilisateur et la sortie sera la suivante :
输入: Geeks for Geeks 输出: Geeks 输入: Computer science 输出: Computer
Fonction gets()
Elle est utilisée pour lire l'entrée à partir de l'entrée standard (clavier). Il est utilisé pour lire l'entrée jusqu'à ce qu'un caractère de nouvelle ligne ou une fin de fichier (EOF) soit rencontré.
#include <stdio.h> int main() { char str[20]; printf("enter something\n"); gets(str); printf("you entered : %s\n", str); return 0; }
Ici, la saisie sera fournie par l'utilisateur comme suit
输入: Geeks for Geeks 输出: Geeks for Geeks 输入: Computer science 输出: Computer science
La principale différence entre eux est :
scanf( ) lit l'entrée jusqu'à ce qu'un espace, une nouvelle ligne ou une fin de fichier (EOF) soit rencontré, alors que gets() lit l'entrée jusqu'à ce qu'une nouvelle ligne ou une fin de fichier (EOF) soit rencontrée, gets() n'arrête pas de lire l'entrée lorsqu'un l'espace est rencontré mais doit traiter les espaces comme des chaînes. scanf peut lire plusieurs valeurs de différents types de données, tandis que gets() ne peut obtenir que des données de chaîne.
La différence peut être affichée sous forme de tableau comme suit :
SCANF() | GETS() |
当scanf()用于读取字符串输入时,它会在遇到空格,换行符或文件结束时停止读取 | 当gets()用于读取输入时,它会在遇到换行符或End Of File时停止读取输入。 当它将空格视为字符串时,它不会停止读取遇到空格的输入。 |
它用于读取任何数据类型的输入 | 它仅用于字符串输入。 |
Comment lire la phrase complète de l'utilisateur à l'aide de scanf()
En fait, nous pouvons utiliser scanf() pour lire la chaîne entière. Par exemple, nous pouvons utiliser %[^n]s dans scanf() pour lire la chaîne entière.
#include <stdio.h> int main() { char str[20]; printf("Enter something\n"); // Here \n indicates that take the input // until newline is encountered scanf("%[^\n]s", str); printf("%s", str); return 0; }
Le code ci-dessus lit la chaîne jusqu'à ce qu'elle rencontre un caractère de nouvelle ligne.
Exemple :
输入: Geeks for Geeks 输出: Geeks for Geeks 输入: Computer science 输出: Computer science
Recommandations associées : "Tutoriel C"
Cet article concerne scanf() et gets() en C. les différences entre eux sont introduites, j'espère que cela sera utile aux amis dans le besoin !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!