Latest web development tutorials

funzioni di libreria C - sscanf ()

C libreria standard - <stdio.h> C libreria standard - <stdio.h>

descrizione

funzioni di libreria Cint sscanf (const char * str, const char * format, ...) per leggere l'input formattato da una stringa.

dichiarazione

Qui è () funzione di dichiarazione sscanf.

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

parametri

  • str - Questa è una stringa C, la funzione recupera i dati di origine.
  • Formato - Questa è una stringa C che contiene i seguenti elementi in una o più di:spazi, caratteri non-spazialie identificatori di formato.
    di formato di forma[=% [*] [larghezza ] [modificatori] type =], la spiegazione specifica come segue:
参数描述
*这是一个可选的星号,表示数据是从流 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一个字符,指定了要被读取的数据类型以及数据读取方式。具体参见下一个表格。

sscanf indicatore di tipo:

类型合格的输入参数的类型
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 *
  • Parametri aggiuntivi - Questa funzione richiede un puntatore come una serie di parametri aggiuntivi, ciascuno un puntatore ad un oggetto, il tipo di oggetto è specificato dalla stringa di formato corrispondente etichetta% etichetta% il parametro d'ordine è la stessa.

    Per stringa di formato per recuperare i dati per ciascun di formato, specificare un parametro aggiuntivo. Se si vuole mettere in una variabile ordinaria, si dovrebbe essere posizionato davanti alla memorizzazione dei risultati di riferimento identificativo sscanf operatore operatore (&), ad esempio:

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

Valore di ritorno

In caso di successo, la funzione restituisce il numero di successo ha trovato e assegnato. Se si raggiunge la fine del file o si verifica un errore di lettura, restituisce EOF.

Esempi

L'esempio seguente mostra viene utilizzata la funzione sscanf ().

#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);
}

Facciamo compilare ed eseguire il programma di cui sopra, che si tradurrà in quanto segue:

March 25, 1989 = Saturday

C libreria standard - <stdio.h> C libreria standard - <stdio.h>