_cscanf
, , _cscanf_l
_cwscanf
_cwscanf_l
Считывает форматированные данные из консоли. Доступны более безопасные версии этих функций; см. , _cwscanf_s
_cscanf_s_l
, _cwscanf_s_l
._cscanf_s
Примечание.
В Visual Studio 2015 printf
были объявлены inline
и scanf
перемещены в <stdio.h>
заголовки и <conio.h>
семейства функций. Если вы переносите старый код, в связи с этими функциями может появиться LNK2019 ошибка компоновщика. Дополнительные сведения см. в журнале изменений Visual C++ 2003 – 2015.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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] ...
);
Параметры
format
Строка управления форматом.
argument
Дополнительные параметры.
locale
Используемый языковой стандарт.
Возвращаемое значение
Число успешно преобразованных и назначенных полей. Возвращаемое значение не включает поля, которые были прочитаны, но не назначены. При попытке чтения конечной части файла возвращается значение EOF
. Можно EOF
также вернуть, когда ввод клавиатуры перенаправляется на уровне командной строки операционной системы. Возвращаемое значение равно нулю означает, что поля не были назначены.
Замечания
Функция _cscanf
считывает данные из консоли в места, указанные функцией argument
. Функция _getche
используется для чтения символов. Каждый дополнительный параметр должен быть указателем на переменную, тип которой соответствует спецификатору типа в параметре format
. Формат управляет интерпретацией входных полей и имеет ту же форму и функцию, что format
и параметр функции для scanf
функции. Хотя _cscanf
обычно эхо входной символ, он не делает это, если последний вызов был._ungetch
Эта функция проверяет свои параметры. Если формат имеет значение NULL
, вызывается обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, для errno
задается значение EINVAL
, и функция возвращает значение EOF
.
Версии этих функций с суффиксом _l
идентичны за исключением того, что они используют переданный параметр языкового стандарта вместо языкового стандарта текущего потока.
Сопоставления подпрограмм универсального текста
Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcscanf |
_cscanf |
_cscanf |
_cwscanf |
_tcscanf_l |
_cscanf_l |
_cscanf_l |
_cwscanf_l |
Требования
Маршрут | Обязательный заголовок |
---|---|
_cscanf , _cscanf_l |
<conio.h> |
_cwscanf , _cwscanf_l |
<conio.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// 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
См. также
Консоль и порт ввода-вывода
_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