gets, _getws
Wstawić wiersz, z stdin strumienia.Bezpieczniejsze wersje te funkcje są dostępne; see gets_s, _getws_s.
Waż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ń |
---|
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.