C++ 控制台应用程序,输出中文时乱码!
这是一个颠倒一句话的程序,如果只输入英文,一切正常,如果输入中文,那就有乱码!跪求求高手解释!#include<iostream>#include<string>#inc...
这是一个颠倒一句话的程序,如果只输入英文,一切正常,如果输入中文,那就有乱码!跪求求高手解释!
#include<iostream>
#include<string>
#include<istream>
using namespace std;
void main()
{
string yonghu;wchar_t temp;
cin>>yonghu;
getline(cin,yonghu);
int c=yonghu.length();
for(int i=1;i<=0.5*c;++i)
{
temp=yonghu[i-1];
yonghu[i-1]=yonghu[c-i];
yonghu[c-i]=temp;
}
cout<<yonghu<<endl;
cout<<system("pause");
} 展开
#include<iostream>
#include<string>
#include<istream>
using namespace std;
void main()
{
string yonghu;wchar_t temp;
cin>>yonghu;
getline(cin,yonghu);
int c=yonghu.length();
for(int i=1;i<=0.5*c;++i)
{
temp=yonghu[i-1];
yonghu[i-1]=yonghu[c-i];
yonghu[c-i]=temp;
}
cout<<yonghu<<endl;
cout<<system("pause");
} 展开
4个回答
推荐于2018-04-21
展开全部
#include <iostream>
#include <string>
using namespace std;
int main()
{
wcout.imbue( locale( "chs" ) );
wcin.imbue( locale( "chs" ) );
wstring yonghu;
wcin >> yonghu;
wstring::size_type c = yonghu.length();
wchar_t temp;
for ( wstring::size_type i = 1; i <= 0.5 * c; ++i )
{
temp = yonghu[ i - 1 ];
yonghu[ i - 1 ] = yonghu[ c - i ];
yonghu[ c - i ] = temp;
}
wcout << yonghu << endl;
}
#include <string>
using namespace std;
int main()
{
wcout.imbue( locale( "chs" ) );
wcin.imbue( locale( "chs" ) );
wstring yonghu;
wcin >> yonghu;
wstring::size_type c = yonghu.length();
wchar_t temp;
for ( wstring::size_type i = 1; i <= 0.5 * c; ++i )
{
temp = yonghu[ i - 1 ];
yonghu[ i - 1 ] = yonghu[ c - i ];
yonghu[ c - i ] = temp;
}
wcout << yonghu << endl;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个汉字占两个字节,你只按一个字节进行颠倒当然会是乱码!
如你输入“中国”
则:你的数组是这样的:
yonghu【0】 yonghu【1】合起来:是“中”
yonghu【2】 yonghu【3】合起来:是“国”
可以去查看一些有关字符集和汉字编码的知识。
如你输入“中国”
则:你的数组是这样的:
yonghu【0】 yonghu【1】合起来:是“中”
yonghu【2】 yonghu【3】合起来:是“国”
可以去查看一些有关字符集和汉字编码的知识。
追问
那要怎么改代码?
追答
不太好改,比较复杂
如:
纯汉字改法(可行)
纯英文改法(可行)
英文汉语混在一起的改法(复杂,需要判断各位置的数据类型)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看字符是乱码 好像要设置什么 菜能输出宽字符了
你还是乖乖的 多字符吧
你还是乖乖的 多字符吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询