_cscanf_s
, , _cscanf_s_l
_cwscanf_s
_cwscanf_s_l
Считывает форматированные данные из консоли. Эти более безопасные версии , _cwscanf_l
_cscanf_l
_cwscanf
имеют улучшения безопасности, как описано в функциях _cscanf
безопасности в CRT.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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] ...
);
Параметры
format
Строка управления форматом.
argument
Дополнительные параметры.
locale
Используемый языковой стандарт.
Возвращаемое значение
Число успешно преобразованных и назначенных полей. Возвращаемое значение не включает поля, которые были прочитаны, но не назначены. При попытке чтения конечной части файла возвращается значение EOF
. Можно EOF
также вернуть, когда ввод клавиатуры перенаправляется на уровне командной строки операционной системы. Возвращаемое значение равно нулю означает, что поля не были назначены.
Эти функции проверяют свои параметры. Если format
это пустой указатель, эти функции вызывают обработчик недопустимых параметров, как описано в разделе проверки параметров. Если выполнение разрешено продолжать, эти функции возвращаются EOF
и errno
задаются EINVAL
в качестве значения .
Замечания
Функция _cscanf_s
считывает данные из консоли в места, указанные функцией argument
. Функция _getche
используется для чтения символов. Каждый дополнительный параметр должен быть указателем на переменную, тип которой соответствует спецификатору типа в параметре format
. Формат управляет интерпретацией входных полей и имеет ту же форму и функцию, что format
и параметр функции для scanf_s
функции. Хотя _cscanf_s
обычно эхо входной символ, он не делает это, если последний вызов был._ungetch
Как и другие безопасные версии функций в семействеscanf
, _cscanf_s
и _cwscanf_s
требуют аргументов размера для символов поля типа c, C, s, S и [. Дополнительные сведения см. в разделе Спецификация ширины scanf.
Примечание.
Параметр размера имеет тип unsigned
, а не size_t
.
Версии этих функций с суффиксом _l
идентичны за исключением того, что они используют переданный параметр языкового стандарта вместо языкового стандарта текущего потока.
Сопоставления подпрограмм универсального текста
Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcscanf_s |
_cscanf_s |
_cscanf_s |
_cwscanf_s |
_tcscanf_s_l |
_cscanf_s_l |
_cscanf_s_l |
_cwscanf_s_l |
Требования
Маршрут | Обязательный заголовок |
---|---|
_cscanf_s , _cscanf_s_l |
<conio.h> |
_cwscanf_s , _cwscanf_s_l |
<conio.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки
Все версии библиотек времени выполнения языка C.
Пример
// 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" );
}
1 2 3
You entered 1 2 3
См. также
Консоль и порт ввода-вывода
_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