_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.
Importante
Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.
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 utilizzare.
Valore restituito
Il numero di campi che sono stati correttamente convertiti e assegnati. Il valore restituito non include campi che sono stati letti ma non assegnati. Il valore restituito è EOF per un tentativo di lettura alla fine del file. Questa situazione può verificarsi quando l'input della tastiera viene reindirizzato a livello di riga di comando del sistema operativo. Un valore restituito pari a 0 significa che nessun campo è stato assegnato.
Note
La funzione _cscanf legge i dati direttamente dalla console nelle posizioni indicate da argument. La funzione _getche viene utilizzata per leggere caratteri. Ogni parametro opzionale deve essere un puntatore a una variabile di un tipo che corrisponde ad un identificatore del tipo format. Il formato controlla l'interpretazione dei campi di input e ha lo stesso form e funzione di un parametro format per la funzione scanf. Mentre _cscanf generalmente visualizza il carattere di input, non esegue questa operazione se l'ultima chiamata a è stata a _ungetch.
Questa funzione convalida i parametri. Se il formato è NULL, viene richiamato il gestore di parametro non valido, 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 in ingresso invece di utilizzare quelle del thread corrente.
Mapping di routine su testo generico
Routine TCHAR.H |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcscanf |
_cscanf |
_cscanf |
_cwscanf |
_tcscanf_l |
_cscanf_l |
_cscanf_l |
_cwscanf_l |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_cscanf,_cscanf_l |
<conio.h> |
_cwscanf, _cwscanf_l |
<conio.h> o <wchar.h> |
Per ulteriori informazioni sulla compatibilità, vedere 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" );
}
Input
1 2 3
Output
Enter three integers: 1 2 3
You entered 3 2 1
Vedere anche
Riferimenti
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l