_cgets, _cgetws_cgets, _cgetws

Ottiene una stringa di caratteri dalla console.Gets a character string from the console. Sono disponibili versioni più sicure di queste funzioni. Vedere _cgets_s, _cgetws_s.More secure versions of these functions are available; see _cgets_s, _cgetws_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, _cgets_s e _cgetws_s, sono ancora disponibili.The secure versions of these functions, _cgets_s and _cgetws_s, are still available. Per informazioni su queste funzioni alternative, vedere _cgets_s, _cgetws_s.For information on these alternative functions, see _cgets_s, _cgetws_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 Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).For more information, see CRT functions not supported in Universal Windows Platform apps.

SintassiSyntax

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

ParametriParameters

buffer
Percorso di archiviazione per i dati.Storage location for data.

Valore restituitoReturn Value

_cgets e _cgetws restituiscono un puntatore all'inizio della stringa, in corrispondenza di buffer[2]._cgets and _cgetws return a pointer to the start of the string, at buffer[2]. Se buffer è NULL, queste funzioni richiamano il gestore di parametri non valido, come descritto in Parameter Validation.If buffer is NULL, these functions invoke the invalid parameter handler, as described in Parameter Validation. Se l'esecuzione può continuare, restituiscono NULL e impostano errno su EINVAL.If execution is allowed to continue, they return NULL and set errno to EINVAL.

NoteRemarks

Queste funzioni leggono una stringa di caratteri dalla console e archiviano la stringa e la relativa lunghezza nella posizione indicata da buffer.These functions read a string of characters from the console and store the string and its length in the location pointed to by buffer. Il parametro buffer deve essere un puntatore a una matrice di caratteri.The buffer parameter must be a pointer to a character array. Il primo elemento della matrice, buffer[0], deve contenere la lunghezza massima in caratteri della stringa da leggere.The first element of the array, buffer[0], must contain the maximum length (in characters) of the string to be read. La matrice deve contenere un numero tale di elementi per contenere la stringa, un carattere Null di terminazione ('\0') e due byte aggiuntivi.The array must contain enough elements to hold the string, a terminating null character ('\0'), and 2 additional bytes. La funzione legge i caratteri finché non viene letta una combinazione di ritorno a capo con avanzamento riga (CR-LF) oppure il numero specificato di caratteri.The function reads characters until a carriage return-line feed (CR-LF) combination or the specified number of characters is read. La stringa viene archiviata a partire da buffer[2].The string is stored starting at buffer[2]. Se la funzione legge una combinazione CR-LF, archivia il carattere Null ('\0').If the function reads a CR-LF, it stores the null character ('\0'). La funzione archivia quindi la lunghezza effettiva della stringa nel secondo elemento della matrice, buffer[1].The function then stores the actual length of the string in the second array element, buffer[1].

Dal momento che tutti i tasti di modifica sono attivi quando si chiama _cgets o _cgetws in una finestra di console, premendo F3 viene ripetuta l'ultima voce immessa.Because all editing keys are active when _cgets or _cgetws is called while in a console window, pressing the F3 key repeats the last entered entry.

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 and _MBCS not defined _MBCS definito_MBCS defined _UNICODE definito_UNICODE defined
_cgetts _cgets _cgets _cgetws

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
_cgets <conio.h><conio.h>
_cgetws <conio.h> o <wchar.h><conio.h> or <wchar.h>

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

EsempioExample

// crt_cgets.c  
// compile with: /c /W3  
// This program creates a buffer and initializes  
// the first byte to the size of the buffer. Next, the  
// program accepts an input string using _cgets and displays  
// the size and text of that string.  

#include <conio.h>  
#include <stdio.h>  
#include <errno.h>  

int main( void )  
{  
   char buffer[83] = { 80 };  // Maximum characters in 1st byte  
   char *result;  

   printf( "Input line of text, followed by carriage return:\n");  

   // Input a line of text:  
   result = _cgets( buffer ); // C4996  
   // Note: _cgets is deprecated; consider using _cgets_s  
   if (!result)  
   {  
      printf( "An error occurred reading from the console:"  
              " error code %d\n", errno);  
   }  
   else  
   {     
      printf( "\nLine length = %d\nText = %s\n",  
              buffer[1], result );  
   }  
}  

      A line of input.Input line of text, followed by carriage return:  
Line Length = 16  
Text = A line of input.  

Vedere ancheSee Also

Console e porta I/O Console and Port I/O
_getch, _getwch_getch, _getwch