如果要处理宽字符,则不能使用printf()和scanf()函数。输入和输出C宽字符串有不同的函数。
null
- wprintf(): 函数的作用是:将格式指向的宽字符串写入stdout。宽字符串格式可能包含以%开头的格式说明符,这些说明符由作为附加参数传递给wprintf()函数的变量值替换。
语法:
int wprintf (const wchar_t* format, ...);
参数:
- 格式: 指向写入标准输出的以null结尾的宽字符串的指针。它由宽字符和以%开头的可选格式说明符组成。格式说明符由格式后面的相应变量的值替换。
- … : 指定要打印的数据的其他附加参数。它们按照格式说明符的顺序出现。这些参数的数量至少应与格式说明符中指定的值的数量相同。函数会忽略其他参数。
- 返回值: 如果成功,wprintf()函数将返回写入的字符数。失败时返回负值。如果成功,wprintf()函数将返回写入的字符数。 失败时返回负值。
// C Program to show the wprintf () function.
#include <stdio.h>
#include <wchar.h> // Header file containing wprintf function
// Driver code
int
main()
{
wint_t
x = 5;
wchar_t
name[] = L
"GEEKS"
;
wprintf(L
"x = %d "
, x);
wprintf(L
"HELLO %ls "
, name);
return
0;
}
输出:
x = 5 HELLO GEEKS
- wscanf(): 函数的作用是:从stdin读取数据,并将值存储到相应的变量中。附加参数应指向已分配的对象,该对象的类型由格式字符串中相应的格式说明符指定。
语法:
int wscanf (const wchar_t* format, ...);
参数:
- 格式: 指向以null结尾的字符串的指针,该字符串指定如何读取输入。它由以%开头的格式说明符组成。但是请注意,所有格式说明符的含义与scanf中的相同;因此,%lc应用于读取宽字符(而非%c),而%ls应用于宽字符串(而非%s)。
- … : 用于接收数据的其他附加参数。它们按照格式说明符的顺序出现。这些参数的数量至少应与格式说明符存储的值的数量相同。函数会忽略其他参数。
- 返回值: 函数的作用是:返回成功分配的接收参数数。我们可以计算并匹配预期的项目数,也可以由于匹配失败、发生读取错误或到达文件末尾导致错误而减少项目数。 如果在分配第一个接收参数之前发生故障,则返回EOF。
// Program to show the wprintf () function.
#include <stdio.h>
#include <wchar.h> // Header file containing wscanf() function
int
main()
{
wchar_t
str[80];
int
i;
wscanf(L
"%ls"
, str);
wscanf(L
"%d"
, &i);
wprintf(L
"I am a %ls of CSE in %d year."
, str, i);
return
0;
}
输入:
GEEK 2
输出:
I am a GEEK of CSE in 2 year.
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END