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 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 getskarakter 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!