_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

Legge i dati formattati dalla console. Sono disponibili versioni più sicure di queste funzioni; vedere _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l.

Nota

In Visual Studio 2015 Le printf funzioni e scanf la famiglia di funzioni sono state dichiarate come inline e spostate nelle <stdio.h> intestazioni e <conio.h> . Se si esegue la migrazione di codice precedente, è possibile che venga visualizzato l'errore del linker LNK2019 in connessione a queste funzioni. Per altre informazioni, vedere Cronologia delle modifiche di Visual C++ 2003 - 2015.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

int _cscanf(
   const char *format [,
   argument] ...
);
int _cscanf_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _cwscanf(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Parametri

format
Stringa di controllo del formato.

argument
Parametri facoltativi.

locale
Impostazioni locali da usare.

Valore restituito

Numero di campi che sono stati convertiti ed assegnati correttamente. Il valore restituito non include i campi letti ma non assegnati. Il valore restituito è EOF per un tentativo di lettura alla fine del file. Un EOF oggetto può essere restituito anche quando l'input della tastiera viene reindirizzato a livello di riga di comando del sistema operativo. Un valore restituito pari a zero indica che non sono stati assegnati campi.

Osservazioni:

La funzione _cscanf legge i dati direttamente dalla console nei percorsi specificati da argument. La _getche funzione viene usata per leggere i caratteri. Ogni parametro facoltativo deve essere un puntatore a una variabile con un tipo corrispondente a un identificatore di tipo in format. Il formato controlla l'interpretazione dei campi di input e ha la stessa forma e funzione del format parametro per la scanf funzione. Anche se _cscanf normalmente restituisce il carattere di input, non lo fa se l'ultima chiamata era a _ungetch.

Questa funzione convalida i relativi parametri. Se format è NULL, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno viene impostato su EINVAL e la funzione restituisce EOF.

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 definito _MBCS Definito _UNICODE Definito
_tcscanf _cscanf _cscanf _cwscanf
_tcscanf_l _cscanf_l _cscanf_l _cwscanf_l

Requisiti

Ciclo Intestazione obbligatoria
_cscanf, _cscanf_l <conio.h>
_cwscanf, _cwscanf_l <conio.h> o <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// crt_cscanf.c
// compile with: /c /W3
/* This program prompts for a string
* and uses _cscanf to read in the response.
* Then _cscanf returns the number of items
* matched, and the program displays that number.
*/

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int   result, i[3];

   _cprintf_s( "Enter three integers: ");
   result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
   // Note: _cscanf is deprecated; consider using _cscanf_s instead
   _cprintf_s( "\r\nYou entered " );
   while( result-- )
      _cprintf_s( "%i ", i[result] );
   _cprintf_s( "\r\n" );
}
1 2 3
Enter three integers: 1 2 3
You entered 3 2 1

Vedi anche

I/O della console e della porta
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l
scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l
sscanf, _sscanf_l, swscanf, _swscanf_l