Bagikan melalui


_cgets_s, _cgetws_s

Mendapatkan string karakter dari konsol. Versi ini dan _cgets _cgetwsmemiliki 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.

Lihat juga

I/O konsol dan port
_getch, _getwch