Sdílet prostřednictvím


gets, _getws

Získá čáru z datového stdin proudu. K dispozici jsou bezpečnější verze těchto funkcí; viz gets_s, _getws_s.

Důležité

Tyto funkce jsou zastaralé. Počínaje sadou Visual Studio 2015 nejsou v CRT k dispozici. Zabezpečené verze těchto funkcí gets_s a _getws_sjsou stále k dispozici. Informace o těchto alternativních funkcích naleznete v tématu gets_s, _getws_s.

Důležité

Toto rozhraní API nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Syntaxe

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

Parametry

buffer
Umístění úložiště pro vstupní řetězec

Vrácená hodnota

Vrátí argument v případě úspěchu. NULL Ukazatel označuje chybu nebo podmínku ukončení souboru. Použijte ferror nebo feof určete, ke kterému došlo. Pokud buffer ano NULL, tyto funkce vyvolávají neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, tyto funkce se vrátí NULL a nastaví errno na EINVAL.

Poznámky

Funkce gets načte řádek ze standardního vstupního datového proudu stdin a uloží ho do buffer. Řádek se skládá ze všech znaků až do prvního znaku nového řádku ('\n'). gets před vrácením řádku nahradí znak nového řádku znakem null (\0). Naproti tomu funkce fgets zachová znak nového řádku. _getws je verze širokého znaku gets; její argument a návratová hodnota jsou řetězce širokých znaků.

Důležité

Vzhledem k tomu, že neexistuje způsob, jak omezit počet přečtených getsznaků , nedůvěryhodný vstup může snadno způsobit přetečení vyrovnávací paměti. Místo toho použijte fgets.

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í šablon zabezpečení.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Rutina TCHAR.H _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_getts gets gets _getws

Požadavky

Rutina Požadovaný hlavičkový soubor
gets <stdio.h>
_getws <stdio.h> nebo <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

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

Vstup delší než 20 znaků přeteče vyrovnávací paměť řádku a téměř jistě způsobí chybové ukončení programu.


Hello there!The line entered was: Hello there!

Viz také

Vstupně-výstupní operace streamu
fgets, fgetws
fputs, fputws
puts, _putws