c++ 中文输出的问题

我在家用vs2005
用wcout 输出wchar_t的‘啊’ 这样的中文字符时
为什么什么都不显示呢???
怎么能让它显示?
另外,我string类的对象str里面放入“哈哈”,想输出其中一个字符,str【0】应该不行,那怎么能输出呢??

这个涉及到中文字符的存储问题,在c++里面,一个中文字符占两个字节,也就是说str="哈哈",那么它占用五个字节(最后一个是结束符\0),如果你想输出哈哈,那么cout<<str;
如果想输出第一个汉字,那么cout<<str[0]<<str[1];就可以
wchar_t只是一个16bit的char,存储汉字感觉是可以的,但是那个结束符\0没处放,我还从来没有这么用过
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-23
中文字符,是双字节。宽字节输出的话,需要_T("");
第2个回答  2013-08-23

原则上这样是可以的

源文件应该用utf8编码

#include <iostream>
#include <string>
#include <locale>
int main(){
    std::locale::global(std::locale("zh_CN.UTF-8"));
    std::wstring s(L"abc中文123");
    std::wcout << s.length() << std::endl;  //8
    std::wcout << s << std::endl;
    return 0;
}

c++ 中文输出的问题
这个涉及到中文字符的存储问题,在c++里面,一个中文字符占两个字节,也就是说str="哈哈",那么它占用五个字节(最后一个是结束符\\0),如果你想输出哈哈,那么cout<<str;如果想输出第一个汉字,那么cout<<str[0]<<str[1];就可以 wchar_t只是一个16bit的char,存储汉字感觉是可以的,但是那个结束...

Dev-C++在printf里面输入中文后,在输出中中文出现错误,和原来的不一...
输出中文出现了乱码,可能是因为你的文件存放位置存在着一些不合理的汉字,你可以找一下,把它变成全英文。

为什么我的c语言程序题中文没有输出?
您的C++版本可能过低,不支持中文输出,或者编译器过低,不支持中文输出。您可以试着装其他版本的C语言编译器,或者C++编译器,建议下载版本较高的编译器。如果C语言仍然不行,可以尝试下载C++语言编译器。

c++无法输出 输入的中文字符?
可能是因为只支持ASCII码,因此无法输入,输出中文,只能用输出函数来控制格式,或者也是其他原因。

c++出现中文乱码怎么解决?
解决C++中文乱码问题的关键在于匹配程序、编译器、操作系统和终端之间的编码。在使用g++编译器运行于cmd环境时,只需通过命令`chcp 6501`将cmd的字符编码切换至UTF-8,即可避免乱码现象。乱码问题的根源在于编译器与终端编码不一致。g++内部默认使用UTF-8格式编译源代码,然后将其以UTF-8编码形式写入二进制...

c++用cout中不能输出中文,乱码
c++在windows下cout不能输出中文的处理方法很简单,要做两步:1、在编译器中设置编码方式为"system"或"GB2312"或"GBK";2、在要输出中文的语句前加入" \\b"即"空格\\b",例如我要用cout输出"你好,中文",则程序可以这样写,如下;include<iostream> using namespace std;int main(void){ cout<<"...

为什么我在运行c++时,无法输出中文(输出的是乱七八糟的符号),只输出数 ...
请问你的输出平台是在哪???这点不说明,不好解决你的问题 输入乱码一般和程序关系不大,主要原因在于显示端编码格式

c++ 为什么读 网页中文内容 输出是乱码的?
void CDataProcessing::GetRequests(CString strRxBuffer){AfxMessageBox("strRxBuffr");} 如果能正确显示,那就是你处理请求的问题.C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C++是一种静态...

C++字符串形式怎么输出中文 求解下面这题
因为名字比较多,所以单个的字符不行,改成string或者char name[100]就行了;

C\/C++编程 scanf中文的问题
printf("请输入你的中文名字:");scanf("%s",a);printf("你的中文名是:%s\\n",a);} 如上一个简单的程序,测试结果为:请输入你的中文名字:李三 你的中文名是:李三 Press any key to continue 如果需要调试,可以在将光标移动到代码的某一行(最好是在输入数据哪一行)添加断点(快捷键F9...

相似回答
大家正在搜