Condividi tramite


_snscanf, _snscanf_l, _snwscanf, _snwscanf_l

Legge i dati formattati di una lunghezza specificata da una stringa. Sono disponibili versioni più sicure di queste funzioni. Vedere _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l.

int __cdecl _snscanf(
   const char * input,
   size_t length,
   const char * format,
   ...
);
int __cdecl _snscanf_l(
   const char * input,
   size_t length,
   const char * format,
   locale_t locale,
   ...
);
int __cdecl _snwscanf(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   ...
);
int __cdecl _snwscanf_l(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   locale_t locale,
   ...
);

Parametri

  • input
    Stringa di input da esaminare.

  • length
    Numero di caratteri da esaminare in input.

  • format
    Uno o più identificatori di formato.

  • ... (optional)
    Le variabili da utilizzare per archiviare i valori estratti dalla stringa di input dagli identificatori di formato in format.

  • locale
    Impostazioni locali da utilizzare.

Valore restituito

Entrambe queste funzioni restituiscono il numero di campi che vengono convertiti ed assegnati correttamente; il valore di ritorno non include i campi che sono stati letti ma non assegnati. Un valore restituito pari a 0 indica che nessun campo è stato assegnato. Il valore restituito è EOF per un errore, o se la fine della stringa viene raggiunta prima della prima conversione. Per ulteriori informazioni, vedere sscanf.

Se input o format è un puntatore a NULL o se length è minore o uguale a zero, il gestore di parametro non valido viene invocato, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono EOF e impostano errno su EINVAL.

Per ulteriori informazioni su questi e altri codici, vedere _doserrno, errno, _sys_errlist, e _sys_nerr.

Note

Questa funzione è come sscanf con la differenza che consente di specificare un numero di caratteri fisso per esaminare la stringa di input. Per ulteriori informazioni, vedere sscanf.

Le versioni di queste funzioni con il suffisso _l sono identiche ad eccezione per il fatto che utilizzano il parametro delle impostazioni locali passato al posto di quelle del thread corrente.

Mapping di routine di testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_sntscanf

_snscanf

_snscanf

_snwscanf

_sntscanf_l

_snscanf_l

_snscanf_l

_snwscanf_l

Requisiti

Routine

Intestazione obbligatoria

_snscanf, _snscanf_l

<stdio.h>

_snwscanf, _snwscanf_l

<stdio.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

// crt_snscanf.c
// compile with: /W3

#include <stdio.h>
int main( )
{
   char  str1[] = "15 12 14...";
   wchar_t  str2[] = L"15 12 14...";
   char  s1[3];
   wchar_t  s2[3];
   int   i;
   float fp;

   i = _snscanf( str1, 6,  "%s %f", s1, &fp); // C4996
   // Note: _snscanf is deprecated; consider using _snscanf_s instead
   printf("_snscanf converted %d fields: ", i);
   printf("%s and %f\n", s1, fp);

   i = _snwscanf( str2, 6,  L"%s %f", s2, &fp); // C4996
   // Note: _snwscanf is deprecated; consider using _snwscanf_s instead
   wprintf(L"_snwscanf converted %d fields: ", i);
   wprintf(L"%s and %f\n", s2, fp);
}
  

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Specifica della larghezza per scanf