跳转到内容

C 编程/stdio.h/wscanf

来自维基教科书,开放的书籍,为开放的世界

wscanf

wscanf 是 C 编程语言 中的标准 C 库函数。
它转换宽字符输入。此函数由头文件wchar.h支持。wscanf 是 scanf 的宽字符版本。


语法
int wscanf(const wchar_t[1]*input in formatted form)
它返回正确格式化的输入数量。如果未格式化的宽字符输入,则计数可能为零或小于输入的输入。


示例

# include<stdio.h>

int main()
{
   int   j, result;
   float a;
   char  ch, string[128];
   wchar_t wch, wst[128];
   result = scanf( "%d %f %c %C %80s %80S", &j, &a, &ch, &wch, string, wst );
   printf( "The number of fields input is %d\n", result );
   printf( "The contents are: %d %f %c %C %s %S\n", j, a, ch, wch, string, wst);
   result = wscanf( L"%d %f %hc %lc %80S %80ls", &j, &a, &ch, &wch, string, wst );
   wprintf( L"The number of fields input is %d\n", result );
   wprintf( L"The contents are: %d %f %C %c %hs %s\n", j, a, ch, wch, string, wst);
   return 0;
}


现在,如果给定输入如下: 83 56.6 k m Scanf input
54 22.3 a f Wscanf input


那么输出将如下所示
输入字段数为 6
内容为:83 56.599998 k m Scanf input
输入字段数为 6
内容为:54 22.300003 a f Wscanf input
因此 scanf 返回正确格式化的字段数,或者换句话说,成功分配的字段数。它不返回未正确格式化的字段的计数,并且此类值被读取但未分配。如果在文件的第一字符读取中遇到文件结尾字符,则返回EOF
参考

华夏公益教科书