c++程序乱码输出要么乱码要么为零

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
最近写编码转换库,发现MB编码转换成 Unicode 后,中文总是乱码。 起初以为是自己写错了,但测试后发现转换结果是完全正确的。 再测试一下,发现居然连常字符串都不能正常输出…… CharW ucs2s[] = L"我fsf我safas"; wprintf(L"%s\r\n", ucs2s); 输出结果:?fsf?safas 带着疑问打开MSDN,发现原来 printf 函数有N个版本…… 其中&Unicode&版本的如下 int wprintf_s(
const wchar_t *format [,
argument]...
); int _wprintf_s_l(
const wchar_t *format,
locale_t locale [,
argument]...
); 这两个函数有什么区别呢?locale_t&locale? 不错,问题就在这里了。原来这个参数描述的是“本地语言”,也就是程序本地化的意思。输出前通常要通过这个参数设置输出文字的语言区域,例如中文。 说简单点,也就是微软为了实现本地化而加入的改动。 解决方法如下: 1、加入头文件 #include &Locale.h& 2、调用函数 _wsetlocale 或 setlocale 设置要使用的本地语言。如:
_wsetlocale(LC_ALL, L"chs"); 或者
setlocale(LC_ALL, "chs"); 此外,网上说 locale 对 prinft 和 printf_s 没有影响,这个似乎是如此。 但我在MSDN里看到的几乎对所有的&printf、atoi、atof&等字符串操作函数都有影响。。。 具体各位自己探索吧。 嗯,就这样。。。。
阅读(2618)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'关于Visual C++ 2008中wprintf和wprintf_s输出中文乱码问题',
blogAbstract:'关于Visual C++ 2008中wprinf中文乱码问题的解决方法。',
blogTag:'c++,vc,中文,乱码,编码',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:9,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&问题补充&&
本页链接:
5放置 &#92;0 这个输出来的字符串就不会乱码了你申请的五个字符空间都放置了字符,它就会一直输出,直到遇到
&#92;ss的0-4放置读取的字符.read(ss,5);
ss[5]=&#39.read(ss,5).read(&&#47;&#47;&#92;0&#39;;&#92;n&quot。char *ss=new char[6];然后把file2;改为file2因为在字符串的输出试“&#92;,1);0”为结束标志的,你要在字符串里面装五个字符,就要申请6个字符的空间,最后一个放置“&#92;0”
&#8226;&#8226;&#8226;&#8226;&#8226;
猜你感兴趣在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
最近迷上了sublime text,文本的多彩高亮让我很是着迷
决定抛弃VS和Eclipse改用它。。
但 现在有两个问题:
1.C/C++环境已经搭建好,编译器选择C++能够运行 但是选择自动选择编译器却出现
= =。好吧 现在就这一个问题了....我都不知道刚才我这么把另外一个问题弄出来的
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:

我要回帖

更多关于 安装程序乱码 的文章

 

随机推荐