_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l
Dati formattati letti dalla console.Questi sono più versioni sicure di _cscanf, _cscanf_l, _cwscanf, _cwscanf_l con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.
![]() |
---|
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_s(
const char *format [,
argument] ...
);
int _cscanf_s_l(
const char *format,
locale_t locale [,
argument] ...
);
int _cwscanf_s(
const wchar_t *format [,
argument] ...
);
int _cwscanf_s_l(
const wchar_t *format,
locale_t locale [,
argument] ...
);
Parametri
format
Stringa di formato e di controllo.argument
Parametri facoltativi.locale
Le impostazioni locali da utilizzare.
Valore restituito
Il numero di campi che correttamente sono stati convertiti viene assegnato lo stato.Il valore restituito non include campi che sono stati letti ma non assegnato.Il valore restituito è EOF per un tentativo di leggere alla fine di un file.Ciò può verificarsi quando l'input della tastiera viene reindirizzato a livello del sistema operativo della riga di comando.Un valore restituito pari a 0 indica che non campo è stato assegnato.
Queste funzioni convalidano i parametri.Se format è un puntatore null, queste funzioni richiamare il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, queste funzioni EOF di ritorno e errnoè impostata su EINVAL.
Note
La funzione di _cscanf_s legge i dati direttamente dalla console in posizioni fornite da argument.La funzione di _getche viene utilizzata per leggere caratteri.Ogni parametro facoltativo deve essere un puntatore a una variabile con un tipo che corrisponde a un identificatore del tipo in format.I controlli del formato interpretazione dei campi di input e dispongono dello stesso form e del parametro di format per la funzione di scanf_s.Mentre _cscanf_s in genere è possibile visualizzare il carattere di input, non viene eseguita questa operazione se l'ultima chiamata ha a _ungetch.
Analogamente ad altre versioni sicure delle funzioni nella famiglia discanf,_cscanf_s e _cswscanf_s richiedono argomenti di dimensioni per i caratteri c, C, s, Se [di campo del tipo.Per ulteriori informazioni, vedere specifica la larghezza di scanf.
[!NOTA]
Dimensione del parametro è di tipo unsigned, non size_t.
Le versioni di queste funzioni con il suffisso _l sono identiche ad eccezione che utilizzano il parametro delle impostazioni locali passato in ingresso invece di utilizzare quelle del thread corrente.
Mapping di routine a Testo generico
TCHAR.H routine |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcscanf_s |
_cscanf_s |
_cscanf_s |
_cwscanf_s |
_tcscanf_s_l |
_cscanf_s_l |
_cscanf_s_l |
_cwscanf_s_l |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_cscanf_s,_cscanf_s_l |
<conio.h> |
_cwscanf_s, _cwscanf_s_l |
<conio.h> o <wchar.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.
Librerie
Tutte le versioni delle Librerie di runtime C.
Esempio
// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
* and uses _cscanf_s to read in the response.
* Then _cscanf_s returns the number of items
* matched, and the program displays that number.
*/
#include <stdio.h>
#include <conio.h>
int main( void )
{
int result, n[3];
int i;
result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
_cprintf_s( "\r\nYou entered " );
for( i=0; i<result; i++ )
_cprintf_s( "%i ", n[i] );
_cprintf_s( "\r\n" );
}
Input
1 2 3
Output
You entered 1 2 3
Vedere anche
Riferimenti
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l