Udostępnij za pośrednictwem


gets, _getws

Pobiera linię ze strumienia stdin . Dostępne są bezpieczniejsze wersje tych funkcji; zobacz gets_s, _getws_s.

Ważne

Te funkcje są przestarzałe. Począwszy od programu Visual Studio 2015, nie są one dostępne w CRT. Bezpieczne wersje tych funkcji gets_s i _getws_s, są nadal dostępne. Aby uzyskać informacje na temat tych funkcji alternatywnych, zobacz gets_s, _getws_s.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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
Lokalizacja magazynu dla ciągu wejściowego.

Wartość zwracana

Zwraca argument w przypadku powodzenia. Wskaźnik NULL wskazuje błąd lub warunek końca pliku. Użyj polecenia ferror lub feof , aby określić, który z nich wystąpił. Jeśli buffer to NULL, te funkcje wywołują nieprawidłową procedurę obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają NULL i ustawiają wartość errno EINVAL.

Uwagi

Funkcja gets odczytuje wiersz ze standardowego strumienia stdin wejściowego i przechowuje go w pliku buffer. Wiersz składa się ze wszystkich znaków do i zawiera pierwszy znak nowego wiersza ('\n'). gets następnie zastępuje znak nowego wiersza znakiem null ('\0') przed zwróceniem wiersza. fgets Natomiast funkcja zachowuje znak nowego wiersza. _getws jest wersją szerokoznakową gets; jego argument i wartość zwracana są ciągami o szerokim znaku.

Ważne

Ponieważ nie ma możliwości ograniczenia liczby znaków odczytanych przez getselement , niezaufane dane wejściowe mogą łatwo spowodować przepełnienie buforu. Użycie w zamian parametru fgets.

W języku C++te funkcje mają przeciążenia szablonu, które wywołują nowsze, bezpieczne odpowiedniki tych funkcji. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS zdefiniowany _UNICODE zdefiniowany
_getts gets gets _getws

Wymagania

Procedura Wymagany nagłówek
gets <stdio.h>
_getws <stdio.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

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

Wprowadzanie danych wejściowych dłuższych niż 20 znaków spowoduje zastąpienie buforu wiersza i prawie na pewno spowoduje awarię programu.


Hello there!The line entered was: Hello there!

Zobacz też

We/Wy strumienia
fgets, fgetws
fputs, fputws
puts, _putws