打印数组将预期值增加48

时间:2018-01-16 00:08:54

标签: 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 ++有点新鲜,所以很明显我无法发现它。

2 个答案:

答案 0 :(得分:1)

int current_board(int Y, int X)

返回int,因此cout打印相应字符的整数代码。将此函数的返回类型更改为charcout将其解释为此类。

答案 1 :(得分:0)

这是因为你打印一个整数,你必须打印一个字符。