作业输出乱码的问题

作业输出乱码的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#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下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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