_snscanf
, _snscanf_l
, _snwscanf
, _snwscanf_l
Membaca data yang diformat dengan panjang tertentu dari string. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat _snscanf_s
, _snscanf_s_l
, _snwscanf_s
, . _snwscanf_s_l
Sintaks
int __cdecl _snscanf(
const char * input,
size_t length,
const char * format,
...
);
int __cdecl _snscanf_l(
const char * input,
size_t length,
const char * format,
_locale_t locale,
...
);
int __cdecl _snwscanf(
const wchar_t * input,
size_t length,
const wchar_t * format,
...
);
int __cdecl _snwscanf_l(
const wchar_t * input,
size_t length,
const wchar_t * format,
_locale_t locale,
...
);
Parameter
input
Masukkan string untuk diperiksa.
length
Jumlah karakter yang akan diperiksa di input
.
format
Satu atau beberapa penentu format.
...
Variabel opsional yang akan digunakan untuk menyimpan nilai yang diekstrak dari string input oleh penentu format di format
.
locale
Lokal yang akan digunakan.
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
.
Jika input
atau format
adalah NULL
penunjuk, atau jika length
kurang dari atau sama dengan nol, 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
, kecuali memungkinkan Anda menentukan jumlah karakter tetap untuk diperiksa dari string input. Untuk informasi selengkapnya, lihat sscanf
.
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 |
_snscanf |
_snscanf |
_snwscanf |
_sntscanf_l |
_snscanf_l |
_snscanf_l |
_snwscanf_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_snscanf , _snscanf_l |
<stdio.h> |
_snwscanf , _snwscanf_l |
<stdio.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_snscanf.c
// compile with: /W3
#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( str1, 6, "%s %f", s1, &fp); // C4996
// Note: _snscanf is deprecated; consider using _snscanf_s instead
printf("_snscanf converted %d fields: ", i);
printf("%s and %f\n", s1, fp);
i = _snwscanf( str2, 6, L"%s %f", s2, &fp); // C4996
// Note: _snwscanf is deprecated; consider using _snwscanf_s instead
wprintf(L"_snwscanf converted %d fields: ", i);
wprintf(L"%s and %f\n", s2, fp);
}
_snscanf converted 2 fields: 15 and 12.000000
_snwscanf 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