_cscanf_s
, , _cscanf_s_l
_cwscanf_s
,_cwscanf_s_l
Membaca data yang diformat dari konsol. Versi , , , , _cwscanf_l
yang 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
Lihat 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