gets, _getws

Ottiene una riga dal flusso stdin . Sono disponibili versioni più sicure di queste funzioni. Vedere gets_s, _getws_s.

Importante

Queste funzioni sono obsolete. A partire da Visual Studio 2015 non sono disponibili in CRT. Le versioni sicure di queste funzioni, gets_s e _getws_s, sono ancora disponibili. Per informazioni su queste funzioni alternative, vedere gets_s, _getws_s.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere l'articolo relativo alle funzioni CRT non supportate con /ZW.

Sintassi

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 l'operazione ha esito positivo. Un puntatore NULL indica una condizione di errore o di fine file. Usare ferror o feof per determinare la condizione che si è verificata. Se buffer è NULL, queste funzioni richiamano il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono NULL e impostano errno su EINVAL.

Note

La funzione gets legge una riga dal flusso di input standard stdin e la archivia in buffer. La riga è costituita da tutti i caratteri, incluso il primo carattere di nuova riga ('\n'). gets sostituisce quindi il carattere di nuova riga con un carattere Null ('\0') prima di restituire la riga. Al contrario, la funzione fgets mantiene il carattere di nuova riga. _getws è una versione a caratteri wide di gets il cui argomento e il cui valore restituito sono stringhe di caratteri wide.

Importante

Dal momento che non esiste alcun modo per limitare il numero di caratteri letti tramite operazioni get, input non attendibile può causare facilmente sovraccarichi del buffer. In alternativa, usare fgets .

In C++ queste funzioni presentano overload di modello che richiamano le relative controparti più recenti e sicure. Per altre informazioni, vedere Overload di modelli sicuri.

Mapping di routine di testo generico

Routine TCHAR.H _UNICODE e _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 altre informazioni sulla compatibilità, vedere Compatibilità.

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 );  
}  

Notare che se l'input contiene più di 20 caratteri, si verificherà un sovraccarico del buffer di riga e quasi certamente il programma verrà arrestato in modo anomalo.


Hello there!The line entered was: Hello there!  

Vedere anche

I/O di flusso
fgets, fgetws
fputs, fputws
puts, _putws