_cgets, _cgetws
Získá znak řetězce z konzoly.Bezpečnější verze těchto funkcí jsou k dispozici; viz _cgets_s, _cgetws_s.
Důležité |
---|
Toto API nelze použít v aplikacích, které jsou spuštěny v modulu 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
_cgets a _cgetws vrací ukazatel na začátek řetězce na buffer[2].Pokud buffer je NULL, tyto funkce vyvolají neplatnou obslužnou rutinu parametru, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, vrátí funkce NULL a nastaví errno na EINVAL.
Poznámky
Tyto funkce přečtou řetězec znaků z konzole a uloží řetězec a jeho délku do umístění, na které ukazuje buffer.Parametr buffer musí být ukazatel na pole znaků.První prvek pole, buffer[0], musí obsahovat maximální délku (ve znacích) řetězce ke čtení.Pole musí obsahovat dostatek prvků pro uložení řetězce, ukončujícího znaku null ('\0') a dalších 2 bajtů.Funkce přečte znaky, dokud není přečtena kombinace znaků návrat vozíku-nový řádek (CR-LF) nebo zadaný počet znaků.Řetězec je uložen od buffer[2].Pokud funkce přečte CR-LF, uloží znak null ('\0').Funkce potom ukládá skutečnou délku řetězce v druhém prvku pole, buffer[1].
Protože všechny klávesy úprav jsou aktivní, když je volána _cgets nebo_cgetws v konzole okna, stisknutím klávesy F3 zopakujete poslední zadání.
V jazyce C++ mají tyto funkce přetížení šablon, která vyvolávají novější, zabezpečené protějšky těchto funkcí.Další informace naleznete v tématu Přetížení zabezpečení šablony.
Rutinní mapování obecného textu
Rutina Tchar.h |
_UNICODE a _MBCS nejsou definovány |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> nebo <wchar.h> |
Další informace o kompatibilitě naleznete v tématu Kompatibilita.
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 );
}
}