_cgets_s
, _cgetws_s
Mendapatkan string karakter dari konsol. Versi ini dan _cgets
_cgetws
memiliki peningkatan keamanan, seperti yang dijelaskan dalam Fitur keamanan di CRT.
Penting
API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
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
Parameter
buffer
Lokasi penyimpanan untuk data.
numberOfElements
Ukuran buffer dalam karakter byte tunggal atau lebar, yang juga merupakan jumlah maksimum karakter yang akan dibaca.
pSizeRead
Jumlah karakter yang benar-benar dibaca.
Nilai hasil
Nilai yang dikembalikan adalah nol jika berhasil; jika tidak, kode kesalahan jika kegagalan terjadi.
Kondisi kesalahan
buffer |
numberOfElements |
pSizeRead |
Tampilkan | Isi dari buffer |
---|---|---|---|---|
NULL |
any | any | EINVAL |
n/a |
tidak NULL |
zero | any | EINVAL |
tidak dimodifikasi |
tidak NULL |
any | NULL |
EINVAL |
string panjang nol |
Keterangan
_cgets_s
dan _cgetws_s
baca string dari konsol dan salin string (dengan terminator null) ke dalam buffer
. _cgetws_s
adalah versi karakter luas dari fungsi; selain ukuran karakter, perilaku kedua fungsi ini identik. Ukuran maksimum string yang akan dibaca diteruskan sebagai numberOfElements
parameter . Ukuran ini harus mencakup karakter tambahan untuk penghentian null. Jumlah karakter aktual yang dibaca ditempatkan di pSizeRead
.
Jika kesalahan terjadi selama operasi atau dalam memvalidasi parameter, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno
diatur ke EINVAL
, dan EINVAL
dikembalikan.
Di C++, penggunaan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat. Kelebihan beban dapat menyimpulkan panjang buffer secara otomatis, yang menghilangkan kebutuhan untuk menentukan argumen ukuran. Mereka juga dapat secara otomatis mengganti fungsi yang lebih lama dan kurang aman dengan rekan-rekan mereka yang lebih baru dan lebih aman. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
Versi pustaka debug dari fungsi-fungsi ini terlebih dahulu mengisi buffer dengan 0xFE. Untuk menonaktifkan perilaku ini, gunakan _CrtSetDebugFillThreshold
.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_cgetts_s |
_cgets_s |
_cgets_s |
_cgetws_s |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_cgets_s |
<conio.h> |
_cgetws_s |
<conio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.