Condividi tramite


_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.

Vedere anche

Riferimenti

I/O console e porta

_getch, _getwch