Sdílet prostřednictvím


gets_s, _getws_s

Získá řádek z proudu stdin.Tyto verze získá _getws mít rozšíření zabezpečení popsaná v Funkce zabezpečení v CRT.

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

  • [out] buffer
    Umístění úložiště pro vstupní řetězec.

  • [in] sizeInCharacters
    Velikost vyrovnávací paměti.

Vrácená hodnota

Pokud je úspěšná, vrátí hodnotu buffer.Ukazatel NULL označuje podmínku chyby nebo konec souboru.Použijte ferror nebo feof, chcete-li zjistit, ke které došlo.

Poznámky

Funkce gets_s přečte řádek ze standardního vstupního proudu stdin a uloží jej do buffer.Řádek obsahuje všechny znaky až po první znak nového řádku (\n) včetně.gets_s poté nahradí znak nového znaku znakem null ('\0') před vrácením řádku.Oproti tomu funkce fgets_s zachová znak nového řádku.

Pokud přečíst první znak je znak konce souboru, znakem null je uložen na začátku buffer a NULL je vrácena.

_getws je širokoznaká verze gets_s; její argument a návratová hodnota jsou širokoznaké řetězce.

Pokud buffer je NULL nebo sizeInCharacters je menší než nula nebo pokud vyrovnávací paměť je příliš malá pro vstup a ukončovací znak null, tyto funkce vyvolat obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, vrátí tyto funkce NULL a nastaví errno na ERANGE.

V jazyce C++ je použití těchto funkcí zjednodušeno díky přetížení šablon; přetížení dokáží odvodit velikost vyrovnávací paměti automaticky (tak, že eliminují potřebu zadat argument velikosti) a automaticky nahradit starší, nezabezpečené funkce jejími novějšími, bezpečnějšími protějšky.Další informace naleznete v tématu Přetížení zabezpečení šablony.

Rutinní mapování obecného textu

Rutina TCHAR.H

_UNICODE & _MBCS není definováno

_MBCS definováno

_UNICODE definováno

_getts

gets_s

gets_s

_getws

Požadavky

Rutina

Požadované záhlaví

gets_s

<stdio.h>

_getws

<stdio.h> nebo <wchar.h>

Konzola není v aplikacích Windows Store podporována.Standardní datový proud popisovačů, které jsou spojeny s konzolou – stdin, stdout a stderr, musí být přesměrován před použitím funkcí jazyka C run-time je v aplikacích Windows Store.Další informace o kompatibilitě naleznete 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 );
}
  

Ekvivalent v rozhraní .NET Framework

System::Console::Read

Viz také

Referenční dokumentace

I/O proudu

gets, _getws

fgets, fgetws

fputs, fputws

puts, _putws