这是一段较大代码的一部分,但输出很奇怪,当我在没有函数的情况下执行它时,也就是将所有参数放在 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
打印相应字符的整数代码。将此函数的返回类型更改为 char
,cout
将这样解释它。
关于c++ - 打印数组将 48 添加到预期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272411/