mysql wchar_wchar_t宽字符多格式基本使用(定义输入输出)

此数据类型主要解决汉字的问题吧。

理论方面我转载其他优秀博主的博客,我这里就直接贴代码讲解具体使用吧,

另外,宽字符录入(输入)的问题,我找遍全网也没见得可以用的,

确实是有wscanf函数,但是没有函数使用样例和报错解决办法,实在让人为难,于是自己去翻函数库一个个找,,,才找到(原创不易啊)

另外,所用函数是vs提供,所以可能会有其他编译器无法使用的情况,故特别补充非vs编译器可以使用的版本如下:

(选用Dev为样例)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#include#include#include#include

using namespacestd;intmain()

{

_wsetlocale(LC_ALL, L"chs");//或者 setlocale(LC_ALL, "chs");//若删除上句,仍能输出整个汉字语句,但不能单独 使用/输出 一个汉字

wchar_t s[5][81];/*方式1

wcin >> s;

wcout << s << endl;*/

/*方式2

_getws(s);

wprintf(L"%ls\n", s);*/system("pause>nul");return 0;

}

简单易懂

vs代码如下:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#include#include#include#include

using namespacestd;

locale loc("chs");/*//语句需要:

#include

locale loc("chs");

_wsetlocale(LC_ALL, L"chs");//或者setlocale(LC_ALL, "chs");

wcout.imbue(loc);*/

intmain()

{

_wsetlocale(LC_ALL, L"chs");//或者setlocale(LC_ALL, "chs");

wcout.imbue(loc);

wchar_t s[]= L"我爱你";

wchar_t S[]= L"你爱我吗";/*_getws_s(s);//输入类型1

wcin >> s;//输入类型2*/wprintf(L"%ls\n", S);

wprintf(L"%s\n", S);

printf("%S\n", S);/*%s 和 %S 输出区别是:

%s窄字符输出,

%ls宽字符输出,

%S输出与输出函数相反宽度的字符格式

(也就是printf因为默认支持的宽度是单字符,而%S偏要使用相反的,那么就

使用宽字符格式输出,而wprintf默认支持的宽度是宽字节,%S偏要使用相反的,

意思就是使用单字符格式输出)*/system("pause>nul");//输出类型1

wcout<< s <

system("pause>nul");//输出类型2

putwchar(s[2]);//或者printf("%lc",s[2]);

wcout <

puts((s[2] == S[0])?"yes":"no");

system("pause>nul");//简单理解使用

return 0;

}

c++

详细宽字符及其衍生函数:https://www.cnblogs.com/lanhaicode/p/10574260.html

_wsetlocale(LC_ALL, L"chs")//setlocale(LC_ALL, "chs")简单说明及char与wchar_t转换:https://www.cnblogs.com/zplutor/archive/2010/11/27/1889227.html

路过点个赞?

你可能感兴趣的:(mysql,wchar)