_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l
Odczyt sformatowane dane z konsoli.Są bardziej bezpieczne wersje _cscanf, _cscanf_l, _cwscanf, _cwscanf_l z ulepszeń zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w CRT.
Ważne |
---|
Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW. |
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] ...
);
Parametry
format
Ciąg sterowania formatem.argument
Parametry opcjonalne.locale
Ustawienia regionalne używane.
Wartość zwracana
Liczba pól, które zostały pomyślnie przekonwertowane i przypisane.Zwracana wartość nie zawiera pola, które były odczytać, ale nie są przypisane.Wartość zwracana jest EOF dla podjęto próbę odczytu na końcu pliku.Taka sytuacja może wystąpić, gdy przekierowywany jest przy użyciu klawiatury na poziomie wiersza polecenia systemu operacyjnego.Zwracana wartość wynosząca 0 oznacza, że przydzielono żadnych pól.
Te funkcje sprawdzania poprawności ich parametrów.Jeśli format jest pusty wskaźnik, funkcje te wywołuje procedurę obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje te zwracają EOF i errno jest ustawiona na EINVAL.
Uwagi
_cscanf_s Funkcja odczytuje dane bezpośrednio z konsoli do lokalizacji, biorąc pod uwagę przez argument._Getche funkcja jest używana do odczytu znaków.Każdy parametr opcjonalny musi być wskaźnik do zmiennej o typie, który odpowiada specyfikatora typu w format.Kontrole formacie interpretacji danych wejściowych pola i ma tę samą wartość stanowią i funkcjonować jako format parametr dla scanf_s funkcji.Podczas gdy _cscanf_s normalnie echa wprowadzany znak, to nie jest to ostatnie wywołanie była _ungetch.
Podobnie jak inne wersje bezpieczne funkcje wscanf rodziny, _cscanf_s i _cswscanf_s wymaga argumentów rozmiar znaków pola typ c, C, s, S, i [.Aby uzyskać więcej informacji, zobacz scanf Specyfikacja szerokość.
[!UWAGA]
Parametr rozmiaru jest typu unsigned, a nie size_t.
Wersje te funkcje za pomocą _l sufiks są identyczne z tym, że używają przekazany zamiast bieżących ustawień regionalnych wątek parametr ustawień regionalnych.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rozpoczęto wykonywanie procedury h |
_UNICODE i _MBCS nie zdefiniowany |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tcscanf_s |
_cscanf_s |
_cscanf_s |
_cwscanf_s |
_tcscanf_s_l |
_cscanf_s_l |
_cscanf_s_l |
_cwscanf_s_l |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_cscanf_s,_cscanf_s_l |
<conio.h> |
_cwscanf_s, _cwscanf_s_l |
<conio.h> lub <wchar.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
Biblioteki
Wszystkie wersje programu biblioteki uruchomieniowej C.
Przykład
// 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" );
}
Dane wejściowe
1 2 3
Dane wyjściowe
You entered 1 2 3
Zobacz też
Informacje
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l