_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
Считывает форматированные данные с консоли. Существуют более безопасные версии этих функций; см. раздел _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l.
Важно!
Этот API невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.
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 при попытке чтения в конце файла. Это может произойти, если данные, вводимые с клавиатуры, перенаправляются на уровне командной строки операционной системы. Возвращаемое значение 0 означает, что поля не были присвоены.
Заметки
Функция _cscanf считывает данные непосредственно из консоли в места, определяемые argument. Функция _getche используется для чтения символов. Каждый необязательный параметр в списке должен быть указателем на переменную, которая имеет тип, соответствующий спецификатору типа в format. Аргумент format управляет интерпретацией полей ввода и имеет те же форму и функциональные возможности, что и аргумент format функции scanf. Обычно _cscanf выводит вводимый символ, но этого не происходит, если последним вызовом был _ungetch.
Эта функция проверяет свои параметры. Если format имеет значение 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
Output
Enter three integers: 1 2 3
You entered 3 2 1
См. также
Ссылки
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l