Sdílet prostřednictvím


_cgets _cgetws

Získá řetězec znaků z konzoly.Bezpečnější verze tyto funkce jsou k dispozici; see _cgets_s _cgetws_s.

Důležitá poznámkaDůležité

Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v systému Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /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

Parametry

  • buffer
    Umístění úložiště pro data.

Vrácená hodnota

_cgetsa _cgetws vrací ukazatel na začátek řetězce, na buffer[2].Pokud buffer je NULL, tyto funkce vyvolat obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametrů.Pokud je povoleno zpracování, chcete-li pokračovat, vracejí NULL a errno na EINVAL.

Poznámky

Tyto funkce číst řetězec znaků z konzoly a uložení řetězce a jeho délka v umístění odkazuje buffer.buffer Parametr musí být ukazatel myši do pole znaků.První prvek pole, buffer[0], musí obsahovat maximální délku (ve znacích) řetězec, který bude číst.Pole musí obsahovat dostatek prvků, které mají obsahovat řetězec, ukončující znak null ('\0') a 2 Další bajty.Funkce přečte znaky, dokud return–line přepravu krmiv kombinaci (CR-LF) nebo číst zadaný počet znaků.Řetězec je uložen, počínaje buffer[2].Je-li funkce načte CR-LF, ukládá znak null ('\0').Funkce potom ukládá skutečná délka řetězce v druhém prvku matice, buffer[1].

Protože všechny úpravy klíče jsou aktivní, když _cgets nebo _cgetws je volána, zatímco v konzole okna stisknutím klávesy F3 se opakuje poslední zadaný údaj.

V jazyce C++ mají tyto funkce šablony přetížení, které vyvolávají novější, bezpečné protějšky těchto funkcí.Další informace naleznete v tématu Přetížení šablony zabezpečení.

Mapování rutiny obecného textu

Byla zahájena rutina Tchar.h

_UNICODE a _MBCS není definováno

_MBCS, definice

_UNICODE definována

_cgetts

_cgets

_cgets

_cgetws

Požadavky

Byla zahájena rutina

Požadované záhlaví

_cgets

<conio.h>

_cgetws

<conio.h> nebo <wchar.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

Příklad

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

Viz také

Referenční dokumentace

I/O konzoly a Port

_getch _getwch