Maison > Article > développement back-end > Discussion approfondie sur l'utilisation et les paramètres de la fonction scanf du langage C
Analyse approfondie de la fonction scanf et de ses paramètres en langage C
En langage C, la fonction scanf est une fonction utilisée pour saisir des données. Elle permet à l'utilisateur de lire des données à partir du périphérique d'entrée standard (généralement le périphérique d'entrée standard). clavier) et stockez-le dans la variable spécifiée. Cet article fournira une analyse approfondie de la fonction scanf et de ses paramètres, et aidera les lecteurs à comprendre et à maîtriser son utilisation grâce à des exemples de code spécifiques. L'utilisation de base de la fonction
L'utilisation de base de la fonction scanf est la suivante :
int scanf(const char *format, ...);
la fonction scanf accepte une chaîne de format en tant que paramètre, qui spécifie le format des données d'entrée, puis la lit à partir des données du périphérique d'entrée standard et stockez-les dans la variable correspondante selon le format. La valeur de retour de la fonction scanf est le nombre de variables qui ont réussi à lire les données. Par exemple, si les données de 3 variables sont lues avec succès, la valeur de retour est 3.
Ce qui suit est un exemple de code simple qui montre comment utiliser la fonction scanf pour lire deux entiers et les additionner :
#include <stdio.h> int main() { int num1, num2, sum; printf("请输入两个整数:"); scanf("%d%d", &num1, &num2); sum = num1 + num2; printf("两个整数的和为:%d ", sum); return 0; }
Dans le code ci-dessus, la chaîne de format "%d%d" de la fonction scanf spécifie deux formats d'entrée pour les entiers. Obtenez les adresses de num1 et num2 via l'opérateur &
et transmettez-les à la fonction scanf en tant que paramètres pour enregistrer les entiers d'entrée dans ces deux variables. &
运算符获取num1和num2的地址作为参数传递给scanf函数,从而将输入的整数保存到这两个变量中。
需要注意的是,scanf函数的格式化字符串中的格式控制符(如%d、%f、%c等)必须与待读取的变量类型匹配,否则会导致数据读取错误。
scanf函数的参数可以是多个,每个参数都对应一个被读取的变量。下面是几个常用的参数用法:
%d
:读取一个整数并存储到int类型变量中。%f
:读取一个浮点数并存储到float类型变量中。%c
:读取一个字符并存储到char类型变量中。%s
:读取一个字符串(不包含空白字符)并存储到字符数组中。以下是一些示例代码,演示了scanf函数参数的具体用法:
#include <stdio.h> int main() { int num; float realNum; char ch; char str[20]; printf("请输入一个整数和一个浮点数:"); scanf("%d%f", &num, &realNum); printf("整数:%d,浮点数:%f ", num, realNum); printf("请输入一个字符:"); scanf(" %c", &ch); printf("字符:%c ", ch); printf("请输入一个字符串(不包含空白字符):"); scanf("%s", str); printf("字符串:%s ", str); return 0; }
在第一个示例代码中,使用了%d
和%f
两个格式控制符,分别读取一个整数和一个浮点数。需要注意的是,这两个格式控制符中间没有空格分隔,这是因为scanf函数在遇到换行符或空白字符时会自动终止输入,所以可以连续读取多个变量。
在第二个示例代码中,由于C语言中字符数组(字符串)不能直接进行输入输出,所以需要使用%c
格式控制符读取单个字符。需要注意的是,在%c之前加上一个空格,以防止读取到上一个scanf函数留下的换行符。
最后一个示例代码演示了如何读取一个字符串,并将其存储到字符数组中。由于字符数组本身就是一个指针,所以在scanf函数中不需要使用&
%d
: lit un entier et le stocke dans une variable de type int. 🎜🎜%f
: Lit un nombre à virgule flottante et stocke-le dans une variable de type float. 🎜🎜%c
: lit un caractère et le stocke dans une variable de type char. 🎜🎜%s
: lit une chaîne (à l'exclusion des caractères d'espacement) et la stocke dans un tableau de caractères. 🎜%d
et %fDeux caractères de contrôle de format, lisant respectivement un entier et un nombre à virgule flottante. Il convient de noter qu'il n'y a pas de séparation d'espace entre ces deux caractères de contrôle de format. En effet, la fonction scanf termine automatiquement la saisie lorsqu'elle rencontre un caractère de nouvelle ligne ou un caractère d'espacement, de sorte que plusieurs variables peuvent être lues en continu. 🎜🎜Dans le deuxième exemple de code, étant donné que les tableaux de caractères (chaînes) en langage C ne peuvent pas être directement entrés et sortis, vous devez utiliser le caractère de contrôle de format <code>%c
pour lire un seul caractère. Il est à noter qu'un espace est ajouté avant %c pour empêcher la lecture du caractère de nouvelle ligne laissé par la fonction scanf précédente. 🎜🎜Le dernier exemple de code montre comment lire une chaîne et la stocker dans un tableau de caractères. Puisque le tableau de caractères lui-même est un pointeur, il n'est pas nécessaire d'utiliser l'opérateur &amp;amp;
dans la fonction scanf. Il convient de noter que lorsque la fonction scanf utilise le caractère de contrôle de format %s pour lire une chaîne, elle arrêtera la lecture lorsqu'elle rencontrera des caractères d'espacement (tels que des espaces, des tabulations, des nouvelles lignes), elle ne pourra donc lire que les chaînes qui ne contiennent pas caractères d'espacement. 🎜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!