Bagikan melalui


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

Lihat juga

Streaming I/O
fgets, fgetws
fputs, fputws
puts, _putws