所以我先用Java编写了这个程序,然后我想在C ++中创建相同的程序。虽然在Java中它在这里工作得很好但我有一个主要问题。我在我的数组中使用了char变量,在C ++中它使用了我假设的ascii代码(笑脸,菱形......)。所以这是一个tic tac toe游戏,所以我希望我的程序显示如下数字: 1 2 3 4 5 6 7 8 9 在我插入1之后如下: X 2 3 4 5 6 7 8 9 如果我将数组设为Int而不是X和88.如果我将它设为char我可以将X显示正确,但是1-9的数字是菱形等。请帮助我!谢谢。
char A[9]={1,2,3,4,5,6,7,8,9};
for(int i = 0, j = 0; i < 9; ++i, ++j)
{
if(j==3)
{
j = 0;
cout<<"\n";
}
cout<<A[i]<<" ";
}
答案 0 :(得分:1)
这一行:
char A[9]={1,2,3,4,5,6,7,8,9};
应该是:
char A[9]={'1','2','3','4','5','6','7','8','9'};
在第一个版本中,你正在做的是创建一个带有ascii值的字符数组(你可以找到一个ascii表here)。
答案 1 :(得分:1)
默认情况下operator<<
的{{1}}重载会打印一个字符,而不是存储的整数值。要让它打印一个整数,您可以投射它:
char
或者,您可以使用std::cout << static_cast<int>(A[1]) << ' ';
作为数组。