C++ 2D数组:录制不明确的';48';在给它写信之后

C++ 2D数组:录制不明确的';48';在给它写信之后,c++,arrays,C++,Arrays,我对编码和这些论坛很陌生,所以如果我搞砸了,请耐心等待 无论如何,对于这个问题,我正在创建一个2D数组来保存我的游戏策划人过去的猜测,作为记录,这样用户就可以回顾他们以前的尝试。我已经为以前的猜测制作了一个2D数组,通过我的“确保它正常工作”的小尝试,它工作得很好。然而,旧的反馈几乎完全一样(比如你有两种颜色在正确的位置,一种在错误的位置,一种完全错误的颜色),它搞砸了,数字48从任何地方出现在它里面,我不知道为什么 这是我的密码: const int FEEDBACK_ARRAY_ROWS =

我对编码和这些论坛很陌生,所以如果我搞砸了,请耐心等待

无论如何,对于这个问题,我正在创建一个2D数组来保存我的游戏策划人过去的猜测,作为记录,这样用户就可以回顾他们以前的尝试。我已经为以前的猜测制作了一个2D数组,通过我的“确保它正常工作”的小尝试,它工作得很好。然而,旧的反馈几乎完全一样(比如你有两种颜色在正确的位置,一种在错误的位置,一种完全错误的颜色),它搞砸了,数字48从任何地方出现在它里面,我不知道为什么

这是我的密码:

const int FEEDBACK_ARRAY_ROWS = 8;
const int FEEDBACK_ARRAY_COL = 3;
int fb_cur_row = 0;
int fb_cur_col = 0;
int Feedback2DArray[FEEDBACK_ARRAY_ROWS][FEEDBACK_ARRAY_COL];
for(int i  = 0; i < 3; i++)
{
    Feedback2DArray[fb_cur_row][fb_cur_col] = feedback_string[i];
    fb_cur_col++;
    cout << feedback_string[0];
    cout << Feedback2DArray[0][0];
}
fb_cur_row++;
for(int i = 0; i < fb_cur_row; i++)
{
    for(int j = 0; j < 3; j++)
    {
        cout << Feedback2DArray[i][j];
    }
}
const int FEEDBACK\u ARRAY\u ROWS=8;
常数int反馈数组COL=3;
int fb_cur_row=0;
int fb_cur_col=0;
int Feedback2DArray[反馈数组行][反馈数组列];
对于(int i=0;i<3;i++)
{
反馈2darray[fb_cur_row][fb_cur_col]=反馈_字符串[i];
fb_cur_col++;

cout
反馈\u字符串
很可能声明如下:

char feedback_string[3];
换句话说,它是一个字符数组。它包含3个字符,它们都是
'0'
,十进制值为
48
(ASCII码)。执行以下赋值时:

Feedback2DArray[fb_cur_row][fb_cur_col] = feedback_string[i];
您正在将
char
类型的对象转换为
int
类型的对象。这就是您看到打印的
48
的原因,因为当您将
int
传递到
cout
时,它会打印出
int
对象持有的值。当您传递
char
类型的对象时,它会打印出字符repre这个价值的表述

现在,如果您的目标是将字符
'0'
转换为实际值
0
,则可以使用以下技巧,利用ASCII码的排序方式:

Feedback2DArray[fb_cur_row][fb_cur_col] = feedback_string[i] - '0';

非常感谢您的快速回复,我没想到这么快就有了。不幸的是,我要到格林尼治标准时间1点才能上大学,但在那之后,我很兴奋能试一试。如果它奏效,我会的