Udostępnij za pośrednictwem


_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żna uwagaWaż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

Konsoli i portów We/Wy

_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