作业输出乱码的问题

作业输出乱码的问题

#include <iostream>
using namespace std;
/*
 *在堆区分配10个字节的内存空间,将这10个字节的内存空间数据
 写成:0x00 ,0x11,0x22, …0X99 并在屏幕上输出。要求如下:

设计一个函数分配内存,通过参数带回分配内存的首地址
设计一个函数完成数据写入
设计一个函数完成数据输出
 * */
unsigned char data[10]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99};

void allocate(char *&p)
{
	p=new char[10];
}
void data_input(char *&p)
{
	for(int i=0;i<10;i++)
	{
		*(p+i)=data[i];
	
	}
}
void data_output(char *&p)
{
	for(int i=0;i<10;i++)
	{
		cout<<i+1<<": "<<*(p+i)<<endl;
	}

}
int main(int argc, const char *argv[])
{
	char *p;
	allocate(p);
	data_input(p);
	data_output(p);
	delete []p;
	return 0;
}

https://img1.sycdn.imooc.com//climg/64a7d57f09e3451910560549.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
中年猿叔 2023-07-07 17:21:45
并不是所有的数据都有对应的字符显示,所以乱码,题目是十六进制数据,可以按照十六进制输出,也可以把char转成int输出
  • 提问者 昆汀 #1

    https://img1.sycdn.imooc.com//climg/64a7da650924238415050591.jpg老师这样算是16进制输出吧,但答案还是乱码

    2023-07-07 17:27:31
  • 提问者 昆汀 #2

    哦老师我好像明白了,先转换为int再16进制输出https://img1.sycdn.imooc.com//climg/64a7db8309119a0009020495.jpg

    2023-07-07 17:31:50
  • 中年猿叔 回复 提问者 昆汀 #3

    p用unsigned修饰一下

    2023-07-07 22:44:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师