Share via


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Membaca data yang diformat dari konsol. Versi , , , ,_cwscanf_lyang lebih aman ini memiliki peningkatan keamanan, seperti yang dijelaskan dalam Fitur keamanan di CRT. _cwscanf_cscanf_l_cscanf

Penting

API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.

Sintaks

int _cscanf_s(
   const char *format [,
   argument] ...
);
int _cscanf_s_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _cwscanf_s(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_s_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Parameter

format
String kontrol format.

argument
Parameter opsional.

locale
Lokal yang akan digunakan.

Nilai hasil

Jumlah bidang yang berhasil dikonversi dan ditetapkan. Nilai yang dikembalikan tidak menyertakan bidang yang dibaca tetapi tidak ditetapkan. Nilai yang dikembalikan adalah EOF untuk upaya untuk membaca di akhir file. Juga EOF dapat dikembalikan saat input keyboard dialihkan pada tingkat baris perintah sistem operasi. Nilai pengembalian nol berarti tidak ada bidang yang ditetapkan.

Fungsi-fungsi ini memvalidasi parameternya. Jika format adalah penunjuk null, fungsi-fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan EOF, dan errno diatur ke EINVAL.

Keterangan

Fungsi ini _cscanf_s membaca data langsung dari konsol ke lokasi yang diberikan oleh argument. Fungsi _getche ini digunakan untuk membaca karakter. Setiap parameter opsional harus berupa penunjuk ke variabel dengan jenis yang sesuai dengan penentu jenis di format. Format mengontrol interpretasi bidang input dan memiliki bentuk dan fungsi yang sama dengan format parameter untuk scanf_s fungsi. Meskipun _cscanf_s biasanya menggemakan karakter input, itu tidak melakukannya jika panggilan terakhir adalah ke _ungetch.

Seperti versi fungsi aman lainnya dalam scanf keluarga, _cscanf_s dan _cwscanf_s memerlukan argumen ukuran untuk jenis karakter bidang c, C, s, S, dan [. Untuk informasi selengkapnya, lihat Spesifikasi Lebar pemindaian.

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

TCHAR. Rutinitas H _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tcscanf_s _cscanf_s _cscanf_s _cwscanf_s
_tcscanf_s_l _cscanf_s_l _cscanf_s_l _cwscanf_s_l

Persyaratan

Rutin Header yang diperlukan
_cscanf_s, _cscanf_s_l <conio.h>
_cwscanf_s, _cwscanf_s_l <conio.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Pustaka

Semua versi pustaka run-time C.

Contoh

// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
* and uses _cscanf_s to read in the response.
* Then _cscanf_s returns the number of items
* matched, and the program displays that number.
*/

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int result, n[3];
   int i;

   result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
   _cprintf_s( "\r\nYou entered " );
   for( i=0; i<result; i++ )
      _cprintf_s( "%i ", n[i] );
   _cprintf_s( "\r\n" );
}
1 2 3
You entered 1 2 3

Baca juga

I/O konsol dan port
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l
scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l
sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l