Bagikan melalui


_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

Spesifikasi Lebar Pemindaian