Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mendapatkan string karakter dari konsol. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat _cgets_s, _cgetws_s.
Penting
Fungsi-fungsi ini usang. Dimulai di Visual Studio 2015, mereka tidak tersedia di CRT. Versi aman dari fungsi-fungsi ini, _cgets_s dan _cgetws_s, masih tersedia. Untuk informasi tentang fungsi alternatif ini, lihat _cgets_s, _cgetws_s.
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
char *_cgets(
char *buffer
);
wchar_t *_cgetws(
wchar_t *buffer
);
template <size_t size>
char *_cgets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_cgetws(
wchar_t (&buffer)[size]
); // C++ only
Parameter
buffer
Lokasi penyimpanan untuk data.
Nilai hasil
_cgets dan _cgetws mengembalikan penunjuk ke awal string, di buffer[2]. Jika buffer adalah NULL, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, eksekusi akan kembali NULL dan diatur errno ke EINVAL.
Keterangan
Fungsi-fungsi ini membaca serangkaian karakter dari konsol dan menyimpan string dan panjangnya di lokasi yang ditujukkan oleh buffer. Parameter buffer harus berupa penunjuk ke array karakter. Elemen pertama dari array, buffer[0], harus berisi panjang maksimum (dalam karakter) string yang akan dibaca. Array harus berisi elemen yang cukup untuk menahan string, karakter null yang mengakhiri ('\0'), dan 2 byte tambahan. Fungsi membaca karakter hingga kombinasi umpan kembali gerbong (CR-LF) atau jumlah karakter yang ditentukan dibaca. String disimpan mulai dari buffer[2]. Jika fungsi membaca CR-LF, fungsi menyimpan karakter null ('\0'). Fungsi kemudian menyimpan panjang aktual string dalam elemen array kedua, buffer[1].
Karena semua tombol pengeditan aktif saat _cgets atau _cgetws dipanggil saat berada di jendela konsol, menekan tombol F3 mengulangi entri terakhir yang dimasukkan.
Di C++, fungsi-fungsi ini memiliki kelebihan beban templat yang memanggil rekan-rekan yang lebih baru dan aman dari fungsi-fungsi ini. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
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 |
_cgets |
_cgets |
_cgetws |
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_cgets.c
// compile with: /c /W3
// This program creates a buffer and initializes
// the first byte to the size of the buffer. Next, the
// program accepts an input string using _cgets and displays
// the size and text of that string.
#include <conio.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char buffer[83] = { 80 }; // Maximum characters in 1st byte
char *result;
printf( "Input line of text, followed by carriage return:\n");
// Input a line of text:
result = _cgets( buffer ); // C4996
// Note: _cgets is deprecated; consider using _cgets_s
if (!result)
{
printf( "An error occurred reading from the console:"
" error code %d\n", errno);
}
else
{
printf( "\nLine length = %d\nText = %s\n",
buffer[1], result );
}
}
A line of input.Input line of text, followed by carriage return:
Line Length = 16
Text = A line of input.