_snscanf_s
, _snscanf_s_l
, _snwscanf_s
, _snwscanf_s_l
Membaca data yang diformat dengan panjang tertentu dari string. Fungsi-fungsi ini adalah versi _snscanf
, _snscanf_l
, _snwscanf
, _snwscanf_l
dengan peningkatan keamanan seperti yang dijelaskan dalam Fitur keamanan di CRT.
Sintaks
int __cdecl _snscanf_s(
const char * input,
size_t length,
const char * format [, argument_list]
);
int __cdecl _snscanf_s_l(
const char * input,
size_t length,
const char * format,
_locale_t locale [, argument_list]
);
int __cdecl _snwscanf_s(
const wchar_t * input,
size_t length,
const wchar_t * format [, argument_list]
);
int __cdecl _snwscanf_s_l(
const wchar_t * input,
size_t length,
const wchar_t * format,
_locale_t locale [, argument_list]
);
Parameter
input
Masukkan string untuk diperiksa.
length
Jumlah karakter yang akan diperiksa di input
.
format
Satu atau beberapa penentu format.
locale
Lokal yang akan digunakan.
argument_list
Argumen opsional yang akan ditetapkan sesuai dengan string format.
Nilai hasil
Kedua fungsi ini mengembalikan jumlah bidang yang berhasil dikonversi dan ditetapkan; nilai pengembalian tidak menyertakan bidang yang dibaca tetapi tidak ditetapkan. Nilai pengembalian 0 menunjukkan bahwa tidak ada bidang yang ditetapkan. Nilai yang dikembalikan adalah EOF
untuk kesalahan atau jika akhir string tercapai sebelum konversi pertama. Untuk informasi selengkapnya, lihat sscanf_s
, _sscanf_s_l
, swscanf_s
, _swscanf_s_l
.
Jika input
atau format
adalah NULL
penunjuk, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini kembali EOF
dan diatur errno
ke EINVAL
.
Untuk informasi tentang kode kesalahan ini dan lainnya, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
Fungsi ini seperti sscanf_s
, kecuali memungkinkan Anda menentukan jumlah karakter tetap untuk diperiksa dari string input. Untuk informasi selengkapnya, lihat sscanf_s
, _sscanf_s_l
, swscanf_s
, _swscanf_s_l
.
Parameter ukuran buffer diperlukan dengan jenis karakter bidang c, C, s, S, dan [. Untuk informasi selengkapnya, lihat Memindai Tipe Karakter Bidang.
Catatan
Parameter ukuran berjenis unsigned
, bukan size_t
.
Versi fungsi-fungsi ini dengan _l
akhiran identik kecuali mereka menggunakan parameter lokal yang diteruskan alih-alih lokal utas saat ini.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_sntscanf_s |
_snscanf_s |
_snscanf_s |
_snwscanf_s |
_sntscanf_s_l |
_snscanf_s_l |
_snscanf_s_l |
_snwscanf_s_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_snscanf_s , _snscanf_s_l |
<stdio.h> |
_snwscanf_s , _snwscanf_s_l |
<stdio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_snscanf_s.c
// This example scans a string of
// numbers, using both the character
// and wide character secure versions
// of the snscanf function.
#include <stdio.h>
int main( )
{
char str1[] = "15 12 14...";
wchar_t str2[] = L"15 12 14...";
char s1[3];
wchar_t s2[3];
int i;
float fp;
i = _snscanf_s( str1, 6, "%s %f", s1, 3, &fp);
printf_s("_snscanf_s converted %d fields: ", i);
printf_s("%s and %f\n", s1, fp);
i = _snwscanf_s( str2, 6, L"%s %f", s2, 3, &fp);
wprintf_s(L"_snwscanf_s converted %d fields: ", i);
wprintf_s(L"%s and %f\n", s2, fp);
}
_snscanf_s converted 2 fields: 15 and 12.000000
_snwscanf_s converted 2 fields: 15 and 12.000000
Baca juga
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