Поделиться через


_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

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

sscanf, _sscanf_l, swscanf, _swscanf_l