Udostępnij za pośrednictwem


_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

Odczytuje sformatowane dane z konsoli programu . Dostępne są bezpieczniejsze wersje tych funkcji; zobacz _cscanf_s, , _cwscanf_s_cscanf_s_l, , _cwscanf_s_l.

Uwaga

W programie Visual Studio 2015 printf rodzina funkcji i scanf została zadeklarowana jako inline i przeniesiona do <stdio.h> nagłówków i <conio.h> . W przypadku migrowania starszego kodu może zostać wyświetlony komunikat Błąd konsolidatora LNK2019 w połączeniu z tymi funkcjami. Aby uzyskać więcej informacji, zobacz Historia zmian języka Visual C++ 2003 – 2015.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

int _cscanf(
   const char *format [,
   argument] ...
);
int _cscanf_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _cwscanf(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Parametry

format
Ciąg kontroli formatu.

argument
Parametry opcjonalne.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Liczba pól, które zostały pomyślnie przekonwertowane i przypisane. Wartość zwracana nie zawiera pól, które zostały odczytane, ale nie zostały przypisane. Wartość zwracana jest EOF dla próby odczytania na końcu pliku. Element EOF może być również zwracany, gdy dane wejściowe klawiatury są przekierowywane na poziomie wiersza polecenia systemu operacyjnego. Zwracana wartość zero oznacza, że żadne pola nie zostały przypisane.

Uwagi

Funkcja _cscanf odczytuje dane bezpośrednio z konsoli do lokalizacji podanych przez argumentprogram . Funkcja _getche służy do odczytywania znaków. Każdy opcjonalny parametr musi być wskaźnikiem do zmiennej o typie odpowiadającym specyfikatorowi typu w programie format. Format steruje interpretacją pól wejściowych i ma taką samą formę i funkcję jak format parametr funkcji scanf . Zwykle _cscanf powtarza znak wejściowy, ale nie robi tego, jeśli ostatnie wywołanie miało wartość _ungetch.

Ta funkcja weryfikuje jego parametry. Jeśli format ma NULLwartość , wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, jest ustawione na EINVAL , errno a funkcja zwraca wartość EOF.

Wersje tych funkcji z sufiksem _l są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast bieżących ustawień regionalnych wątku.

Mapowania procedur tekstu ogólnego

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcscanf _cscanf _cscanf _cwscanf
_tcscanf_l _cscanf_l _cscanf_l _cwscanf_l

Wymagania

Procedura Wymagany nagłówek
_cscanf, _cscanf_l <conio.h>
_cwscanf, _cwscanf_l <conio.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

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

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

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

   _cprintf_s( "Enter three integers: ");
   result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
   // Note: _cscanf is deprecated; consider using _cscanf_s instead
   _cprintf_s( "\r\nYou entered " );
   while( result-- )
      _cprintf_s( "%i ", i[result] );
   _cprintf_s( "\r\n" );
}
1 2 3
Enter three integers: 1 2 3
You entered 3 2 1

Zobacz też

We/Wy konsoli i portu
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l
scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l
sscanf, _sscanf_l, swscanf, _swscanf_l