_cgets_s
, _cgetws_s
Ottiene una stringa di caratteri dalla console. Queste versioni di e _cgetws
dispongono di miglioramenti per_cgets
la sicurezza, come descritto in Funzionalità di sicurezza in CRT.
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
errno_t _cgets_s(
char *buffer,
size_t numberOfElements,
size_t *pSizeRead
);
errno_t _cgetws_s(
wchar_t *buffer
size_t numberOfElements,
size_t *pSizeRead
);
template <size_t size>
errno_t _cgets_s(
char (&buffer)[size],
size_t *pSizeRead
); // C++ only
template <size_t size>
errno_t _cgetws_s(
wchar_t (&buffer)[size],
size_t *pSizeRead
); // C++ only
Parametri
buffer
Percorso di archiviazione per i dati.
numberOfElements
La dimensione del buffer in caratteri a byte singolo o wide, che è anche il numero massimo di caratteri da leggere.
pSizeRead
Numero di caratteri attualmente letti.
Valore restituito
Il valore restituito è zero se ha esito positivo; in caso contrario si verifica un errore.
Condizioni di errore
buffer |
numberOfElements |
pSizeRead |
Restituzione | Contenuto di buffer |
---|---|---|---|---|
NULL |
qualsiasi | qualsiasi | EINVAL |
n/d |
non NULL |
zero | qualsiasi | EINVAL |
non modificato |
non NULL |
qualsiasi | NULL |
EINVAL |
stringa di lunghezza zero |
Osservazioni:
_cgets_s
e _cgetws_s
leggono una stringa dalla console e copiano la stringa (con un carattere di terminazione null) in buffer
. _cgetws_s
è la versione a caratteri wide della funzione; a parte la dimensione di caratteri, il comportamento di queste due funzioni è identico. La dimensione massima della stringa da leggere viene passata come parametro numberOfElements
. Questa dimensione deve includere un carattere aggiuntivo per la terminazione null. Il numero effettivo dei caratteri letti viene inserito in pSizeRead
.
Se si verifica un errore durante l'operazione o nella convalida dei parametri, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno
viene impostata su EINVAL
e EINVAL
viene restituito .
In C++, l'uso di queste funzioni è semplificato dagli overload dei modelli. Gli overload possono dedurre automaticamente la lunghezza del buffer, eliminando la necessità di specificare un argomento size. Possono anche sostituire automaticamente le funzioni meno recenti e meno sicure con le controparti più recenti e più sicure. Per altre informazioni, vedere Proteggere gli overload dei modelli.
Le versioni della libreria di debug di queste funzioni riempiono prima di tutto il buffer con 0xFE. Per disabilitare questo comportamento, usare _CrtSetDebugFillThreshold
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine Tchar.h | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_cgetts_s |
_cgets_s |
_cgets_s |
_cgetws_s |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_cgets_s |
<conio.h> |
_cgetws_s |
<conio.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).