Condividi tramite


gets, _getws

Ottenere un oggetto stdin dall'oggetto .Sono disponibili versioni più sicure di tali funzioni; vedere gets_s, _getws_s.

Nota importanteImportante

Questa API non può essere utilizzata nelle applicazioni che vengono eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.

char *gets( 
   char *buffer 
);
wchar_t *_getws( 
   wchar_t *buffer 
);
template <size_t size>
char *gets( 
   char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws( 
   wchar_t (&buffer)[size]
); // C++ only

Parametri

  • buffer
    Percorso di archiviazione per la stringa di input.

Valore restituito

Restituisce il relativo argomento se ha esito positivo.Un puntatore a NULL indica un errore o una condizione di fine file.Utilizzare ferror o feof per determinare quale si è verificato.Se il buffer è NULL, queste funzioni richiamano un gestore di parametro non valido, come descritto in Convalida dei parametri.Se l'esecuzione può continuare, queste funzioni restituiscono NULL e impostano errno a EINVAL.

Note

La funzione gets 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 quindi sostituisce il carattere di nuova riga con un carattere null ('\0') prima di restituirla.Al contrario, la funzione fgets mantiene il carattere di nuova riga._getws è una versione a caratteri di tipo "wide" di gets; il relativo argomento e valore restituito sono stringhe di caratteri di tipo "wide".

Nota sulla sicurezzaNota sulla sicurezza

Poiché non è possibile limitare il numero di caratteri da leggere tramite la gets, un input non attendibile può facilmente causare dei sovraccarichi del buffer.In alternativa, utilizzare fgets.

In C++, queste funzioni hanno modelli di overload che invocano le più recenti, controparti sicure di queste.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

gets

_getws

Requisiti

Routine

Intestazione obbligatoria

gets

<stdio.h>

_getws

<stdio.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

// crt_gets.c
// compile with: /WX /W3

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets( line );  // C4996
   // Danger: No way to limit input to 20 chars.
   // Consider using gets_s instead.
   printf( "The line entered was: %s\n", line );
}

Si noti che input lunghi più di 20 caratteri sovraccaricheranno il buffer della riga e quasi certamente causeranno l'arresto anomalo del programma.

  

Equivalente .NET Framework

System::Console::Read

Vedere anche

Riferimenti

Flusso I/O

fgets, fgetws

fputs, fputws

puts, _putws