Bagikan melalui


_cgets, _cgetws

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.

Lihat juga

I/O konsol dan port
_getch, _getwch