Condividi tramite


_cgets, _cgetws

Ottiene una stringa di caratteri dalla console.Più versioni sicure di queste funzioni sono disponibili, vedere _cgets_s, _cgetws_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 *_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

Parametri

  • buffer
    Percorso di archiviazione per i dati.

Valore restituito

_cgets e _cgetws restituiscono un puntatore all'inizio della stringa, a buffer[2].Se buffer è NULL, queste funzioni richiamare il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, restituiscono NULL e errno stabilito a EINVAL.

Note

Queste funzioni interpreta una stringa di caratteri dalla console e archiviano la stringa e la sua lunghezza nella posizione indicata da buffer.Il parametro di buffer deve essere un puntatore a una matrice di caratteri.Il primo elemento della matrice, buffer[0], deve contenere la lunghezza massima (i caratteri della stringa da visualizzare.La matrice deve contenere elementi sufficienti per contenere la stringa, un carattere di terminazione null (" \ 0 ") e 2 byte aggiuntivi.La funzione legge caratteri fino a un miscuglio di un feed di ritorno- riga del carrello (CR-LF) o il numero specificato di caratteri viene visualizzato.La stringa viene archiviato iniziare a buffer[2].Se la funzione legge un CR-LF, archivia il carattere null (" \ 0 ").La funzione quindi archiviare l'effettiva lunghezza della stringa nel secondo elemento della matrice, buffer[1].

Poiché tutti i tasti di modifica sono attive quando _cgets o_cgetws viene chiamato mentre in una finestra di console, premendo il tasto F3 ripetere l'ultima voce inserita.

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

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_cgetts

_cgets

_cgets

_cgetws

Requisiti

Routine

Intestazione obbligatoria

_cgets

<conio.h>

_cgetws

<conio.h> o <wchar.h>

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

Esempio

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

Vedere anche

Riferimenti

Console e porta I/O

_getch, _getwch