2016-12-05 108 views
-3

我正在尝试创建一个tic tac toe板,但我遇到了两个问题。 (很抱歉,如果这个问题的格式是不好的,这是我第一次问此问题)C++ Array在数字前打印零并且不打印9

#include <iostream> 
#include <iomanip> 
#include <cctype> 
#include <fstream> 
#include <cstdlib> 
using namespace std; 

的一个问题(数组下面的声明)是在程序运行时(如在最底部所示) ,最后一个数字(9)不打印它只是空白。如果我用另一个数字(例如5)替换9,它就像其他数字一样打印出来。我想不通为什么它不会打印对数字9

char board[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; 

int row; 
int column; 

void display_board(); 

int main() 
{ 
    display_board(); 

    return 0; 
} 

void display_board() 
{ 
    for (row = 0; row < 3; row++) 
    { 
     for (column = 0; column < 3; column++) 
     { 
     cout << board[row][column]; 
     } 
     cout << "\n"; 
    } 
} 

的另一个问题是,当程序运行时(如下图所示),它的每一个号码前打印三个零。我只想要1-9而不是三个零。我无法弄清楚为什么这三个零都在那里,更不用说摆脱它们了。任何和所有的帮助表示感谢你。

Program Run

+4

我相当肯定没有东西在这里打印正确。很少的终端会提供ASCII控制字符的合理视觉表示。 –

+0

为什么你将整数输入到char数组中?你应该像这样输入字符:'{{'1','2','3'},{'4','5','6'},{'7','8',' 9'}};或者正如songyuanyao所说的那样,改用int数组。我不确定这是否会解决您的问题。 –

+0

0x09的控制字符是退格,这就是为什么你没有看到它的输出。 –

回答

0

尝试

char board[3][3] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}}; 

有乐趣的编码,并尝试在途中

+0

错误,在C++中应该用单引号(例如'1')输入不带双引号(例如“1”)的字符。只对字符串使用双引号。 –

+0

@MrPigeon是的,我注意到,thx提醒我,老习惯很难死 – arslan2012

0

谢谢大家的帮助看了一些书。

的确,问题可以通过将数组声明中的数字放在单引号中或将数组本身更改为int来解决。愚蠢的错误在我的角色。再次感谢。

0

变化

char board[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

int board[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

(让你的字符数组整数数组)。

在你的程序中没有其他东西似乎是错误的。我刚刚在IDE中运行它,并在将数组更改为int后获得所需的输出。