_cgets_s, _cgetws_s
Ottiene una stringa di caratteri dalla console. Queste versioni di _cgets and _cgetws contengono miglioramenti della sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Importante
Questa API non può essere utilizzata nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.
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
[out] buffer
Percorso di archiviazione per i dati.[in] numberOfElements
La dimensione del buffer in caratteri a byte singolo o wide, che è anche il numero massimo di caratteri da leggere.[in] pSizeRead
Numero di caratteri letti effettivamente.
Valore restituito
Il valore restituito è zero se ha esito positivo; se in caso contrario si verifica un errore, il valore restituito è un codice di errore.
Condizioni di errore
buffer |
numberOfElements |
pSizeRead |
Restituzione |
Contenuto di buffer. |
---|---|---|---|---|
NULL |
any |
any |
EINVAL |
n/d |
non NULL |
zero |
any |
EINVAL |
non modificato |
non NULL |
any |
NULL |
EINVAL |
stringa di lunghezza zero |
Note
_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 che rappresenta il null di terminazione. Il numero effettivo dei caratteri letti viene inserito in pSizeRead.
Se si verifica un errore durante l'operazione o nella convalida dei parametri, il gestore dei parametri non validi viene richiamato, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno è impostato su EINVAL e viene restituito EINVAL.
In C++ l'utilizzo di queste funzioni è semplificato dagli overload dei modelli. Gli overload possono dedurre la lunghezza del buffer automaticamente, eliminando quindi la necessità di specificare un argomento di dimensione, e possono sostituire automaticamente le meno sicure funzioni precedenti con le controparti più recenti e più sicure. Per ulteriori informazioni, vedere Overload di modelli sicuri.
Mapping di routine di testo generico
Routine Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_cgetts_s |
_cgets_s |
_cgets_s |
_cgetws_s |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_cgets_s |
<conio.h> |
_cgetws_s |
<conio.h> o <wchar.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.