Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 zdefiniowany |
_UNICODE zdefiniowany |
|---|---|---|---|
_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