_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

从个控件的 Reads 设置数据格式。 这些功能的更安全版本可用;请参见 _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

重要

此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 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的类型说明符的类型的变量。 窗体控件输入字段的说明和具有窗体和功能和 scanf 功能的 format 参数相同。 当 _cscanf 通常回显输入字符时,它不这样做,则最后调用对 _ungetch。

此功能验证其参数。 如果格式为空,则无效参数调用处理程序,如 参数验证所述。 如果执行允许继续,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

请参见

参考

控制台和端口I/O

_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