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


_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_lfwscanf_fwscanf_l
scanf_s, , _scanf_s_lwscanf_s_wscanf_s_l
sscanf, , _sscanf_lswscanf_swscanf_l