Udostępnij za pośrednictwem


gets, _getws

Wstawić wiersz, z stdin strumienia.Bezpieczniejsze wersje te funkcje są dostępne; see gets_s, _getws_s.

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /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
    Miejsca przechowywania ciągu wejściowego.

Wartość zwracana

Zwraca argument, jeśli kończy się pomyślnie.A NULL wskaźnik wskazuje się warunku błędu lub końca pliku.Użycie ferror lub feof do określenia, który z nich wystąpił.Jeśli buffer jest NULL, te funkcje Wywołaj funkcję obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje te zwracają NULL i ustawić errno na EINVAL.

Uwagi

gets Funkcja czytający linię z Standardowy strumień wejściowy stdin i zapisuje go w buffer.Linia składa się z wszystkich znaków, łącznie z pierwszego znaku nowego wiersza (\n).getsnastępnie zastępuje znak nowego wiersza znak null ('\0') przed ponownym wyświetleniem wiersza.Z drugiej strony fgets funkcja zachowuje znak nowego wiersza._getwsjest ona szerokich znaków do gets; jej argument i wartość zwracana są ciągami szerokich znaków.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Ponieważ nie ma sposobu, aby ograniczyć liczbę znaków, odczytane przez pobiera, niezaufanych danych wejściowych mogą łatwo spowodować przepełnienia bufora.Zamiast tego użyj elementu fgets.

W języku C++ te funkcje mają overloads szablonu, które wywołują odpowiednikami nowych, bezpiecznych funkcji.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.

Tekst rodzajowy rutynowych mapowania

TCHAR.Rozpoczęto wykonywanie procedury h

_UNICODE & _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_getts

gets

gets

_getws

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

gets

<stdio.h>

_getws

<stdio.h> lub <wchar.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

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

Należy zauważyć, że dane wejściowe dłużej niż 20 znaków będzie związanej z przepełnieniem bufora wierszy i prawie na pewno powodować awarię programu.

  

Odpowiednik w programie .NET Framework

System::Console::Read

Zobacz też

Informacje

Strumień we/wy

fgets, fgetws

fputs, fputws

puts, _putws