Latest web development tutorials

fonctions de la bibliothèque C - sscanf ()

C bibliothèque standard - <stdio.h> C bibliothèque standard - <stdio.h>

description

fonctions de la bibliothèque Cint sscanf (const char * str, const char * format ...) pour lire l' entrée formatée à partir d' une chaîne.

déclaration

Ici, il est () fonction instruction sscanf.

int sscanf(const char *str, const char *format, ...)

Paramètres

  • str - Ceci est une chaîne de C, la fonction récupère les données source.
  • Format - Ceci est une chaîne C contenant les éléments suivants dans un ou plusieurs de:caractères d'espace,lescaractères non-espaceet spécificateurs de format.
    spécificateur de format de la forme[=% [*] [largeur ] [modificateurs] type =], l'explication spécifique comme suit:
参数描述
*这是一个可选的星号,表示数据是从流 stream 中读取的,但是可以被忽视,即它不存储在对应的参数中。
width这指定了在当前读取操作中读取的最大字符数。
modifiers为对应的附加参数所指向的数据指定一个不同于整型(针对 d、i 和 n)、无符号整型(针对 o、u 和 x)或浮点型(针对 e、f 和 g)的大小: h :短整型(针对 d、i 和 n),或无符号短整型(针对 o、u 和 x) l :长整型(针对 d、i 和 n),或无符号长整型(针对 o、u 和 x),或双精度型(针对 e、f 和 g) L :长双精度型(针对 e、f 和 g)
type一个字符,指定了要被读取的数据类型以及数据读取方式。具体参见下一个表格。

Type sscanf spécificateur:

类型合格的输入参数的类型
c单个字符:读取下一个字符。如果指定了一个不为 1 的宽度 width,函数会读取 width 个字符,并通过参数传递,把它们存储在数组中连续位置。在末尾不会追加空字符。char *
d十进制整数:数字前面的 + 或 - 号是可选的。int *
e,E,f,g,G浮点数:包含了一个小数点、一个可选的前置符号 + 或 -、一个可选的后置字符 e 或 E,以及一个十进制数字。两个有效的实例 -732.103 和 7.12e4float *
o八进制整数。int *
s字符串。这将读取连续字符,直到遇到一个空格字符(空格字符可以是空白、换行和制表符)。char *
u无符号的十进制整数。unsigned int *
x,X十六进制整数。int *
  • Desparamètres supplémentaires - Cette fonction prend un pointeur comme une série de paramètres supplémentaires chacune un pointeur sur un objet, le type d'objet est spécifié par la chaîne de format% étiquette% étiquette correspondant du paramètre d'ordre est le même.

    Pour la chaîne de format pour récupérer des données pour chaque spécificateur de format, spécifiez un paramètre supplémentaire. Si vous voulez mettre dans une variable ordinaire, vous devriez être placé en face de l'opérateur exploitant le stockage des résultats de référence d'identification de (&), par exemple:

        int n;
        sscanf (str,"%d",&amp;n);
    

Valeur de retour

En cas de succès, la fonction retourne le nombre de correspondance avec succès et affecté. Si vous arrivez à la fin du fichier ou une erreur de lecture se produit, elle renvoie EOF.

Exemples

L'exemple suivant illustre la fonction sscanf () est utilisée.

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int day, year;
   char weekday[20], month[20], dtm[100];

   strcpy( dtm, "Saturday March 25 1989" );
   sscanf( dtm, "%s %s %d  %d", weekday, month, &day, &year );

   printf("%s %d, %d = %s\n", month, day, year, weekday );
    
   return(0);
}

Nous allons compiler et exécuter le programme ci-dessus, qui se traduira par ce qui suit:

March 25, 1989 = Saturday

C bibliothèque standard - <stdio.h> C bibliothèque standard - <stdio.h>