Sdílet prostřednictvím


gets_s, _getws_s

Získá čáru z datového stdin proudu. Tyto verze getsmají _getws vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

Syntaxe

char *gets_s(
   char *buffer,
   size_t sizeInCharacters
);
wchar_t *_getws_s(
   wchar_t *buffer,
   size_t sizeInCharacters
);
template <size_t size>
char *gets_s( char (&buffer)[size] ); // C++ only

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

Parametry

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

sizeInCharacters
Velikost vyrovnávací paměti.

Vrácená hodnota

Vrátí buffer 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.

Poznámky

Funkce gets_s 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_s před vrácením řádku nahradí znak nového řádku znakem null ('\0' ). Naproti tomu funkce fgets_s zachová znak nového řádku.

Pokud je první znak čtení znakem konce souboru, je znak null uložen na začátku bufferznaku a NULL je vrácen.

_getws_s je verze širokého znaku gets_s; její argument a návratová hodnota jsou řetězce širokých znaků.

Pokud buffer je NULL nebo je menší nebo sizeInCharacters rovna nule, nebo pokud je vyrovnávací paměť příliš malá, aby obsahovala vstupní řádek a ukončovací znak null, tyto funkce vyvolat neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, tyto funkce vrátí NULL a nastaví předčítání na ERANGE.

V jazyce C++ je použití těchto funkcí zjednodušeno přetíženími šablon; přetížení mohou automaticky odvodit délku vyrovnávací paměti (eliminuje potřebu zadat argument velikosti) a mohou automaticky nahradit starší, nezabezpečené funkce jejich novějšími zabezpečenými protějšky. 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

TCHAR.H Rutinní _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_getts_s gets_s gets_s _getws_s

Požadavky

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

Konzola není podporována v aplikacích pro Univerzální platforma Windows (UPW). Standardní zpracování datových proudů, které jsou přidružené ke konzole , a , stderrmusí být přesměrovány před tím, stdinstdoutnež je funkce runtime jazyka C mohou používat v aplikacích pro UPW. Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

// crt_gets_s.c
// This program retrieves a string from the stdin and
// prints the same string to the console.

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets_s( line, 20 );
   printf( "The line entered was: %s\n", line );
}
Hello there!
The line entered was: Hello there!

Viz také

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