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_s
karakter lebar dari ; argumen dan nilai yang dikembalikan adalah string karakter lebar.
Jika buffer
kurang NULL
sizeInCharacters
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
, stdout
dan 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk