gets_s, _getws_s
Ottenere un oggetto stdin dall'oggetto .Queste sono versioni di ottiene, _getws con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.
char *gets_s(
char *buffer,
size_t sizeInCharacters
);
wchar_t *_getws_s(
wchar_t *buffer,
size_t sizeInCharacters
);
template <size_t size>
char *gets_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws_s(
wchar_t (&buffer)[size]
); // C++ only
Parametri
[out] buffer
Percorso di archiviazione per la stringa di input.[in] sizeInCharacters
Dimensione del buffer.
Valore restituito
Se ha esito positivo restituisce buffer.Un puntatore a NULL indica un errore o una condizione di fine file.Utilizzare ferror o feof per determinare quale si è verificato.
Note
La funzione gets_s legge una riga dal flusso di input predefinito stdin e lo memorizzata in buffer.La riga è costituita da tutti i caratteri fino al primo carattere di nuova riga ('\n') incluso.gets_s quindi sostituisce il carattere di nuova riga con un carattere null ('\0') prima di restituirla.Al contrario, la funzione fgets_s mantiene il carattere di nuova riga.
Se il primo carattere lettura è il carattere di fine file, un carattere null viene archiviato nella parte superiore di buffer e NULL viene restituito.
_getws è una versione a caratteri di tipo "wide" di gets_s; il relativo argomento e valore restituito sono stringhe di caratteri di tipo "wide".
Se buffer è NULL o sizeInCharacters è minore o uguale a zero, o se il buffer è troppo piccolo per contenere la riga e il terminatore null di input, esse richiamano un gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione può continuare, queste funzioni restituiscono NULL e impostano errno a ERANGE.
In C++, l'utilizzo di queste funzioni è semplificato dagli overload dei modelli; gli overload possono dedurre la lunghezza del buffer automaticamente (che elimina la necessità di specificare un argomento di dimensione) e possono sostituire automaticamente le funzioni precedenti, quelle non sicure alle più recenti e le controparti sicure.Per ulteriori informazioni, vedere Assicurarsi che gli overload del modello.
Mapping di routine a Testo generico
TCHAR.H routine |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_getts |
gets_s |
gets_s |
_getws |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
gets_s |
<stdio.h> |
_getws |
<stdio.h> o <wchar.h> |
La console non è supportata nelle applicazioni di Windows Store.L'handle standard del flusso associate alla console, stdin, stdoute stderr, devono essere reindirizzati prima di funzioni di runtime del linguaggio C possono essere utilizzate nelle applicazioni di Windows Store.Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.
Esempio
// crt_gets_s.c
// This program retrieves a string from the stdin and
// prints the same string to the console.
#include <stdio.h>
int main( void )
{
char line[21]; // room for 20 chars + '\0'
gets_s( line, 20 );
printf( "The line entered was: %s\n", line );
}