gpt4 book ai didi

c++ - 二维数组 : Recording an ambiguous '48' after writing to it

转载 作者:行者123 更新时间:2023-11-28 07:15:35 24 4
gpt4 key购买 nike

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

不管怎样,对于这个问题,我正在创建一个二维数组来为我的游戏策划者保存过去的猜测,作为记录,这样用户就可以回顾他们之前的尝试。我已经为旧的猜测制作了一个二维数组,并且从我的“确保它有点工作”的小尝试中它工作得很好。然而,对于旧的反馈几乎完全相同(比如你在正确的地方有 2 种颜色,1 种在错误的地方和 1 种完全错误的颜色)它搞砸了,数字 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];
}
}

出于某种原因,这个“代码格式”不喜欢我的代码的 1/2,幸运的是,这是我能管理的所有内容,但我很确定它有基本的东西。基本上我有 cout << feedback_string[0]; cout << Feedback2DArray[0][0];

因为它们应该输出相同的东西,但它们不是。第一行输出它应该输出的是“0”,因为它所基于的计数器是(因为它们都是)0。但是发送线输出“48”。有什么想法吗?

最佳答案

feedback_string最有可能声明如下:

char feedback_string[3];

也就是说,它是char的数组.这包含 3 个字符,它们都是 '0' ,其十进制值为 48 (在 ASCII 代码中)。当您执行以下作业时:

Feedback2DArray[fb_cur_row][fb_cur_col] = feedback_string[i];

您正在转换类型为 char 的对象到 int 类型的对象.这就是您看到 48 的原因打印出来,因为当你传递一个 intcout , 它打印出值 int对象持有。当您传递 char 类型的对象时, 它打印出该值的字符表示。

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

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

关于c++ - 二维数组 : Recording an ambiguous '48' after writing to it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20277777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com