gets_s, _getws_s
Pobiera wiersz ze strumienia stdin.Te wersje pobiera, _getws mają rozszerzenia zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w 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
[poza] buffer
Lokalizacja magazynowa ciągu wejściowego.[in] sizeInCharacters
Rozmiar buforu.
Wartość zwracana
Zwraca buffer, jeśli kończy się pomyślnie.Wskaźnik NULL wskazuje warunek błędu lub końca pliku.Użyj ferror lub feof do określenia, który z nich ma wystąpić.
Uwagi
gets_s funkcja odczytuje wiersz ze standardowego strumienia wejściowego stdin i zapisuje go w buffer.Linia składa się z wszystkich znaków, w tym pierwszego znaku nowego wiersza (\n).gets_s następnie zastępuje znak nowego wiersza znakiem null (\0) przed zwróceniem linii.W przeciwieństwie, funkcja fgets_s zachowuje znak nowego wiersza.
Jeśli pierwszy znak odczytu jest znak końca pliku, znak null jest przechowywany na początku buffer i NULL jest zwracany.
_getws jest wersją znaków dwubajtowych gets_s; argumenty i wartości zwracane to ciągi znaków dwubajtowych.
Jeśli buffer jest NULL lub sizeInCharacters jest mniejsza niż lub równa zero, lub jeśli bufor jest za mały, aby zawierać wejście liniowe i null terminator, tych funkcji Wywołaj obsługę nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, te funkcje zwracają NULL i ustawiają mechanizm errno jako ERANGE.
W języku programowania C++ korzystanie z tych funkcji jest uproszczone przez przeciążania szablonu; przeciążania mogą automatycznie wywnioskować długość buforu (tak, aby nie było konieczne określenie argumentu rozmiaru), ponadto te funkcje mogą automatycznie zastąpić starsze, niezabezpieczone funkcje nowszymi, bardziej bezpiecznymi odpowiednikami.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_getts |
gets_s |
gets_s |
_getws |
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
gets_s |
<stdio.h> |
_getws |
<stdio.h> lub <wchar.h> |
Konsola nie jest obsługiwana w aplikacjach Windows Store.Standardowe uchwyty strumienia powiązane z konsolą—stdin, stdout, i stderr—muszą zostać przekierowane zanim będą wykorzystane przez funkcje środowiska uruchomieniowego C w aplikacjach Windows Store.Dodatkowe informacje o zgodności – zobacz: Zgodność.
Przykład
// 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 );
}