c++ - 打印数组将 48 添加到预期值

标签 c++ arrays function

这是一段较大代码的一部分,但输出很奇怪,当我在没有函数的情况下执行它时,也就是将所有参数放在 main 函数中它可以正常工作。但是当我在函数中执行此操作时,它会添加 48,原因超出我的理解。

#include <iostream>
#include <fstream>

#define N 3

void print_into_file();
int current_board(int Y, int X);

int X, Y;

using namespace std;

int main()
{

    print_into_file();

}

int current_board(int Y, int X)
{
    char current_array [N][N] = 
    {
        {'1', '2', '3'},
        {'4', '5', '6'},
        {'7', '8', '9'}
    };

    return current_array[Y][X];
}

void print_into_file()
{
    ofstream myfile;
    myfile.open("printtest.txt");

    for(Y = 0; Y < N; Y++)
    {
        for(X = 0; X < N; X++)
        {
            myfile << "| " << current_board(Y, X) << " ";
        }

        myfile << "|" << endl;
    }
    myfile.close();
}

这个程序的输出是

| 49 | 50 | 51 |

| 52 | 53 | 54 |

| 55 | 56 | 57 |

但应该是

| 1 | 2 | 3 |

| 4 | 5 | 6 |

| 7 | 8 | 9 |

我不确定哪里出了问题。

我是 C++ 的新手,所以它可能是我无法发现的显而易见的东西。

最佳答案

int current_board(int Y, int X)

返回一个 int,所以 cout 打印相应字符的整数代码。将此函数的返回类型更改为 charcout 将这样解释它。

关于c++ - 打印数组将 48 添加到预期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272411/

相关文章:

c++ - 指针不匹配和问题

c++ - 循环遍历一个字符串,输出多个字符

arrays - 如何在 Julia 中索引圆形数组?

c++ - 重载赋值运算符 C++

c++ - std::sort 是否改变相等元素的相对顺序?

arrays - 液体标记贴图过滤器示例

function - Julia 创建一个函数的多个稍作修改的版本

c - 使用函数创建链接列表时出现问题

javascript - 你如何处理多参数 JavaScript 函数?

C++——不同类型对象的数组