gets
, _getws
Mendapatkan baris dari stdin
aliran. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat gets_s
, _getws_s
.
Penting
Fungsi-fungsi ini usang. Dimulai di Visual Studio 2015, mereka tidak tersedia di CRT. Versi aman dari fungsi-fungsi ini, gets_s
dan _getws_s
, masih tersedia. Untuk informasi tentang fungsi alternatif ini, lihat gets_s
, _getws_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 *gets(
char *buffer
);
wchar_t *_getws(
wchar_t *buffer
);
template <size_t size>
char *gets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws(
wchar_t (&buffer)[size]
); // C++ only
Parameter
buffer
Lokasi penyimpanan untuk string input.
Nilai hasil
Mengembalikan argumennya jika berhasil. Penunjuk NULL
menunjukkan kesalahan atau kondisi akhir file. Gunakan ferror
atau feof
untuk menentukan mana yang telah terjadi. Jika buffer
adalah NULL
, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini kembali NULL
dan diatur errno
ke EINVAL
.
Keterangan
Fungsi membaca gets
baris dari aliran stdin
input standar dan menyimpannya di buffer
. Baris terdiri dari semua karakter hingga dan termasuk karakter baris baru pertama ('\n'). gets
kemudian mengganti karakter baris baru dengan karakter null ('\0') sebelum mengembalikan baris. Sebaliknya, fgets
fungsi mempertahankan karakter baris baru. _getws
adalah versi gets
karakter lebar dari ; argumen dan nilai yang dikembalikan adalah string karakter lebar.
Penting
Karena tidak ada cara untuk membatasi jumlah karakter yang dibaca oleh gets
, input yang tidak tepercaya dapat dengan mudah menyebabkan overrun buffer. Gunakan fgets
sebagai gantinya.
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
TCHAR. Rutinitas H | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_getts |
gets |
gets |
_getws |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
gets |
<stdio.h> |
_getws |
<stdio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_gets.c
// compile with: /WX /W3
#include <stdio.h>
int main( void )
{
char line[21]; // room for 20 chars + '\0'
gets( line ); // C4996
// Danger: No way to limit input to 20 chars.
// Consider using gets_s instead.
printf( "The line entered was: %s\n", line );
}
Input lebih dari 20 karakter akan menimpa buffer baris dan hampir pasti menyebabkan program mengalami crash.
Hello there!The line entered was: Hello there!