_cgets_s, _cgetws_s

Pobiera ciąg znaków z konsoli programu . Te wersje i _cgets_cgetwsmają ulepszenia zabezpieczeń, zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.

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

errno_t _cgets_s(
   char *buffer,
   size_t numberOfElements,
   size_t *pSizeRead
);
errno_t _cgetws_s(
   wchar_t *buffer
   size_t numberOfElements,
   size_t *pSizeRead
);
template <size_t size>
errno_t _cgets_s(
   char (&buffer)[size],
   size_t *pSizeRead
); // C++ only
template <size_t size>
errno_t _cgetws_s(
   wchar_t (&buffer)[size],
   size_t *pSizeRead
); // C++ only

Parametry

buffer
Lokalizacja przechowywania danych.

numberOfElements
Rozmiar buforu w postaci znaków jednobajtowych lub szerokich, który jest również maksymalną liczbą znaków do odczytania.

pSizeRead
Liczba znaków faktycznie odczytanych.

Wartość zwracana

Wartość zwracana jest zero, jeśli operacja się powiedzie; w przeciwnym razie kod błędu, jeśli wystąpi błąd.

Warunki błędu

buffer numberOfElements pSizeRead Zwrot Zawartość buffer
NULL dowolny dowolny EINVAL nie dotyczy
Nie NULL zero dowolny EINVAL niezmodyfikowane
Nie NULL dowolny NULL EINVAL ciąg o zerowej długości

Uwagi

_cgets_s i _cgetws_s odczytaj ciąg z konsoli i skopiuj ciąg (z terminatorem o wartości null) do buffer. _cgetws_s to szeroka wersja znaku funkcji; inne niż rozmiar znaku zachowanie tych dwóch funkcji jest identyczne. Maksymalny rozmiar ciągu do odczytu jest przekazywany jako numberOfElements parametr . Ten rozmiar powinien zawierać dodatkowy znak dla wartości null zakończenia. Rzeczywista liczba odczytanych znaków jest umieszczana w pliku pSizeRead.

Jeśli podczas operacji wystąpi błąd lub podczas walidacji parametrów, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, errno jest ustawione na EINVAL, i EINVAL jest zwracany.

W języku C++użycie tych funkcji jest uproszczone przez przeciążenia szablonów. Przeciążenia mogą automatycznie wnioskować długość buforu, co eliminuje konieczność określenia argumentu rozmiaru. Mogą również automatycznie zastępować starsze, mniej bezpieczne funkcje nowszymi, bardziej bezpiecznymi odpowiednikami. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.

Wersje biblioteki debugowania tych funkcji najpierw wypełniają bufor 0xFE. Aby wyłączyć to zachowanie, użyj polecenia _CrtSetDebugFillThreshold.

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 Zdefiniowane _UNICODE Zdefiniowane
_cgetts_s _cgets_s _cgets_s _cgetws_s

Wymagania

Procedura Wymagany nagłówek
_cgets_s <conio.h>
_cgetws_s <conio.h> lub <wchar.h>

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

Zobacz też

We/Wy konsoli i portu
_getch, _getwch