Sdílet prostřednictvím


gets, _getws

Získat řádek z stdin proudu.Bezpečnější verze tyto funkce jsou k dispozici; see gets_s _getws_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 *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.A NULL ukazatel myši označuje podmínku chyby nebo konce souboru.Použití ferror nebo feof Chcete-li zjistit, který z nich došlo.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, tyto funkce vracejí NULL a kód chyby EINVAL.

Poznámky

gets Funkce přečte řádek ze standardní vstupní proud stdin a uloží jej v buffer.Řádek obsahuje všechny znaky až po a včetně první znak nového řádku (\n).getspak nahradí znak nového řádku znak null ('\0') před vrácením řádku.Oproti tomu fgets funkce si uchovává znak nového řádku._getwsje verzí širokého znaku gets; jeho argument a vrácené hodnoty jsou řetězci širokého znaku.

Poznámka k zabezpečeníPoznámka k zabezpečení

Protože neexistuje žádný způsob, jak omezit počet znaků, které jsou přečteny získá, nedůvěryhodné vstupní může snadno způsobit chyby přetečení vyrovnávací paměti.Jako náhradu použijte fgets.

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

TCHAR.Byla zahájena rutina h

_UNICODE & _MBCS není definováno

_MBCS, definice

_UNICODE definována

_getts

gets

gets

_getws

Požadavky

Byla zahájena rutina

Požadované záhlaví

gets

<stdio.h>

_getws

<stdio.h> nebo <wchar.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

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

Všimněte si, že vstup delší než 20 znaků bude řádkové vyrovnávací paměti přetečení a téměř jistě dojít k selhání programu.

  

Ekvivalent v rozhraní .NET Framework

System::Console::Read

Viz také

Referenční dokumentace

Proud I/O

fgets fgetws

fputs fputws

puts, _putws