gets, _getwsgets, _getws

Ottiene una riga dal flusso stdin .Gets a line from the stdin stream. Sono disponibili versioni più sicure di queste funzioni. Vedere gets_s, _getws_s.More secure versions of these functions are available; see gets_s, _getws_s.

Importante

Queste funzioni sono obsolete.These functions are obsolete. A partire da Visual Studio 2015 non sono disponibili in CRT.Beginning in Visual Studio 2015, they are not available in the CRT. Le versioni sicure di queste funzioni, gets_s e _getws_s, sono ancora disponibili.The secure versions of these functions, gets_s and _getws_s, are still available. Per informazioni su queste funzioni alternative, vedere gets_s, _getws_s.For information on these alternative functions, see gets_s, _getws_s.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime.This API cannot be used in applications that execute in the Windows Runtime. Per altre informazioni, vedere l'articolo relativo alle funzioni CRT non supportate con /ZW.For more information, see CRT functions not supported with /ZW.

SintassiSyntax

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  

ParametriParameters

buffer
Percorso di archiviazione per la stringa di input.Storage location for input string.

Valore restituitoReturn Value

Restituisce il relativo argomento se l'operazione ha esito positivo.Returns its argument if successful. Un puntatore NULL indica una condizione di errore o di fine file.A NULL pointer indicates an error or end-of-file condition. Usare ferror o feof per determinare quella che si è verificata.Use ferror or feof to determine which one has occurred. Se buffer è NULL, queste funzioni richiamano un gestore di parametri non valido, come descritto in Parameter Validation.If buffer is NULL, these functions invoke an invalid parameter handler, as described in Parameter Validation. Se l'esecuzione può continuare, queste funzioni restituiscono NULL e impostano errno su EINVAL.If execution is allowed to continue, these functions return NULL and set errno to EINVAL.

NoteRemarks

La funzione gets legge una riga dal flusso di input standard stdin e la archivia in buffer.The gets function reads a line from the standard input stream stdin and stores it in buffer. La riga è costituita da tutti i caratteri, incluso il primo carattere di nuova riga ('\n').The line consists of all characters up to and including the first newline character ('\n'). gets sostituisce quindi il carattere di nuova riga con un carattere Null ('\0') prima di restituire la riga.gets then replaces the newline character with a null character ('\0') before returning the line. Al contrario, la funzione fgets mantiene il carattere di nuova riga.In contrast, the fgets function retains the newline character. _getws è una versione a caratteri wide di getsil cui argomento e il cui valore restituito sono stringhe a caratteri wide._getws is a wide-character version of gets; its argument and return value are wide-character strings.

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.Because there is no way to limit the number of characters read by gets, untrusted input can easily cause buffer overruns. In alternativa, usare fgets .Use fgets instead.

In C++ queste funzioni presentano overload di modello che richiamano le relative controparti più recenti e sicure.In C++, these functions have template overloads that invoke the newer, secure counterparts of these functions. Per altre informazioni, vedere Secure Template Overloads.For more information, see Secure Template Overloads.

Mapping di routine di testo genericoGeneric-Text Routine Mappings

Routine TCHAR.HTCHAR.H routine _UNICODE e _MBCS non definiti_UNICODE & _MBCS not defined _MBCS definito_MBCS defined _UNICODE definito_UNICODE defined
_getts gets gets _getws

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
gets <stdio.h><stdio.h>
_getws <stdio.h> o <wchar.h><stdio.h> or <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibilità.For additional compatibility information, see Compatibility.

EsempioExample

// 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.Note that input longer than 20 characters will overrun the line buffer and almost certainly cause the program to crash.


Hello there!The line entered was: Hello there!  

Vedere ancheSee Also

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