一个宽字符在C语言如何输入问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:22:31
在main函数中定义一个宽字符串:
wchar_t wt[]=L"123王平abc";
但是我想不在函数中定义wt的值而是在外面从stdin中输入,请问和C中字符串输入一样吗? 用scanf函数?还是???

帮忙把代码写出来,谢谢了!
呵呵,还是你行。
我的意思是在终端上输入“fsd发送gre”,并且可以在屏幕是显示“fsd发送gre”
定义成:wchar_t wt[256];
然后是这样的: wscanf(L"%s",wt);wprintf( L"%s\n", buff );就打印出来。

宽字符有专门的输入函数wscanf。

用普通的scanf也可以做到,但需要做处理,所以在输入宽字符的时候,最佳选择还是专门的wscanf。

当输入宽字符型变量时,需要使用格式符号%lc, 输入宽字符串时需要使用格式符号%ls。

另外,宽字符一般用wprintf输出,这时输出字符和字符串时,用%c和%s即可。

参考代码如下:

void main( void )
{
   wchar_t wc, ws[81];//定义一个宽字符变量,及一个宽字符数组。
   wscanf( L"%lc%ls",&wc, ws );//输入值。
   wprintf( L"%c,%s\n",wc, ws);//输出值。
}

ASNI C 有wchar_t类型,定义在stddef.h文件中,对应的宽字符版本IO函数有wprintf()/wscanf()/swscanf()/swprintf()等

定义成
#include <stdio.h>

main()
{
wchar_t buff[256];
scanf( "%s", buff );
printf( "%s\n", buff );
}
但输入还按scanf就可以

wscanf(...)

用scanf输入多字节的,再将多字节转成unicode保存到wt

c语言不支持宽字符