_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