c++下char数组转string乱码是什么原因啊

三只猴子 2017-11-01 03:50:42
char a[5]={10,c9,86,24,55};
string s;
s=string(a,5);

这样写输出后全是乱码,直接赋值的方式也试过了,乱码是什么导致的啊,如何解决啊,求解
...全文
932 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-02
  • 打赏
  • 举报
回复
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
zhangzhaoguo 2017-11-02
  • 打赏
  • 举报
回复
用类似printf("%02x", a[i])的形式输出到字符串
zhangzhaoguo 2017-11-02
  • 打赏
  • 举报
回复
你应该转成16进制方式输出
paschen 版主 2017-11-01
  • 打赏
  • 举报
回复
引用 4 楼 u014729550 的回复:
引用 2 楼 cfjtaishan 的回复:
乱码主要原因是无法输出c9, 24这样的字符;
这些数据本来是16进制,我按照char类型保存的,现在要转成string输出,应该怎么转啊,这些字符不能当成普通的字符来处理吗
有些字符本身就不是可显示的字符,而且字符串也没以\0结尾,如果要输出直接以16进制进行输出显示即可,转成string字然是乱码
开源学开源 2017-11-01
  • 打赏
  • 举报
回复
引用 2 楼 cfjtaishan 的回复:
乱码主要原因是无法输出c9, 24这样的字符;
一语中地!我服!
开源学开源 2017-11-01
  • 打赏
  • 举报
回复
你这么一问我突然觉得我的语法还有问题
#include<iostream>
#include <string>
using namespace std;
int main()
{
	char a[6] = { 'a','c','b','d','e' };
	char b[6] = "abcde";
	string s=a;	
	string s1 = b;
	cout << s.c_str() << endl;
	cout << s1.c_str() << endl;
	return 0;
}
自信男孩 2017-11-01
  • 打赏
  • 举报
回复
引用 4 楼 u014729550 的回复:
[quote=引用 2 楼 cfjtaishan 的回复:] 乱码主要原因是无法输出c9, 24这样的字符;
这些数据本来是16进制,我按照char类型保存的,现在要转成string输出,应该怎么转啊,这些字符不能当成普通的字符来处理吗[/quote] 如果是16进制,那么应该前面加0x,否则编译器都认为是十进制,所以c9编译器会报错;
LXL110306 2017-11-01
  • 打赏
  • 举报
回复
按照上面的形式修改,用16进制查看结果.应该就可以了.
jena_wy 2017-11-01
  • 打赏
  • 举报
回复
数组越界,并且把c9这个赋值给char,错误。
LXL110306 2017-11-01
  • 打赏
  • 举报
回复
把char数组这样定义 char a[5]={'\x10','\xc9','\x86','\x24','\x55'}; string str111(a, 5);
大尾巴猫 2017-11-01
  • 打赏
  • 举报
回复
16进制的数值,应该用0x10, 0xc9这样的格式
三只猴子 2017-11-01
  • 打赏
  • 举报
回复
引用 2 楼 cfjtaishan 的回复:
乱码主要原因是无法输出c9, 24这样的字符;
这些数据本来是16进制,我按照char类型保存的,现在要转成string输出,应该怎么转啊,这些字符不能当成普通的字符来处理吗
FoolCarpe 2017-11-01
  • 打赏
  • 举报
回复
自信男孩 2017-11-01
  • 打赏
  • 举报
回复
乱码主要原因是无法输出c9, 24这样的字符;
自信男孩 2017-11-01
  • 打赏
  • 举报
回复
c9是多少?16进制? 10是回车符可以理解,24是不能在终端上显示的。详细的请查阅ASCII码表;

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧