gets_s, _getws_s

Mendapatkan baris dari stdin aliran. Versi gets, _getws ini memiliki peningkatan keamanan, seperti yang dijelaskan dalam Fitur keamanan di CRT.

Sintaks

char *gets_s(
   char *buffer,
   size_t sizeInCharacters
);
wchar_t *_getws_s(
   wchar_t *buffer,
   size_t sizeInCharacters
);
template <size_t size>
char *gets_s( char (&buffer)[size] ); // C++ only

template <size_t size>
wchar_t *_getws_s( wchar_t (&buffer)[size] ); // C++ only

Parameter

buffer
Lokasi penyimpanan untuk string input.

sizeInCharacters
Ukuran buffer.

Nilai hasil

Mengembalikan buffer jika berhasil. Penunjuk NULL menunjukkan kesalahan atau kondisi akhir file. Gunakan ferror atau feof untuk menentukan mana yang telah terjadi.

Keterangan

Fungsi membaca gets_s baris dari aliran stdin input standar dan menyimpannya di buffer. Baris terdiri dari semua karakter hingga dan termasuk karakter baris baru pertama ('\n'). gets_s kemudian mengganti karakter baris baru dengan karakter null ('\0') sebelum mengembalikan baris. Sebaliknya, fgets_s fungsi mempertahankan karakter baris baru.

Jika karakter pertama yang dibaca adalah karakter akhir file, karakter null disimpan di awal buffer, dan NULL dikembalikan.

_getws_s adalah versi gets_skarakter lebar dari ; argumen dan nilai yang dikembalikan adalah string karakter lebar.

Jika buffer kurang NULLsizeInCharacters dari atau sama dengan nol, atau jika buffer terlalu kecil untuk berisi baris input dan terminator null, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan NULL dan mengatur errno ke ERANGE.

Di C++, menggunakan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat; kelebihan beban dapat menyimpulkan panjang buffer secara otomatis (menghilangkan kebutuhan untuk menentukan argumen ukuran) dan mereka dapat secara otomatis mengganti fungsi lama yang tidak aman dengan rekan-rekan yang lebih baru dan aman. 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.H Rutin _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_getts_s gets_s gets_s _getws_s

Persyaratan

Rutin Header yang diperlukan
gets_s <stdio.h>
_getws_s <stdio.h> atau <wchar.h>

Konsol tidak didukung di aplikasi Platform Windows Universal (UWP). Handel aliran standar yang terkait dengan konsol, , stdin, stdoutdan stderr, harus dialihkan sebelum fungsi run-time C dapat menggunakannya di aplikasi UWP. Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_gets_s.c
// This program retrieves a string from the stdin and
// prints the same string to the console.

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets_s( line, 20 );
   printf( "The line entered was: %s\n", line );
}
Hello there!
The line entered was: Hello there!

Baca juga

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