'int'类型的参数与'char'类型的参数不兼容

时间:2013-04-03 03:29:38

标签: c++

我正在尝试创建一个简单的tic tac toe游戏,使用c ++作为一些功课的一部分,但难以画板。我正在尝试使用连字符(短划线)绘制基本板,如:

- - -
- - -
- - -

但我收到错误“类型'int'的参数与'char'类型的参数不兼容”。有人可以指点我正确的方向帮忙吗?

我的代码如下:

char empty = '-';

int size = 9;
int width = 3;

void showBoard(char board[]);

void showBoard(char board[])
{
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < width; j++)
        {
            board[i] = empty;

          cout << board << endl;
        }

        cout << endl;
    }
}

int main()
{
    showBoard(10);
}

3 个答案:

答案 0 :(得分:2)

您的功能正在等待char[],但您正在通过int。这些类型显然是不相容的。

这应该兼容:

char board[] = "123456789";
showBoard(board);

答案 1 :(得分:2)

您应该考虑将showBoard函数拆分为2个例程:initializeBoard和showBoard。

您的initializeBoard例程应如下所示:

void initializeBoard(char board[])
{
    for (int i = 0; i < size; i++)
    {
         board[i] = empty;
    }
 }

showBoard例程是:

void showBoard(char board[])
{
    for (int i = 0; i < size/width; i++)
    {
        for (int j = 0; j < width; j++)
        {

         cout << board[i*width +j] << ' ';
        }

        cout << endl;
    }
}

最后你设置这样的顶部:

char board[9];

initializeBoard(board);
showBoard(board);

答案 2 :(得分:1)

您可能希望char tiles[] = "---------"; showBoard(tiles);代替showBoard(10)

此外,

board[i] = empty;

错位showBoard()。它应该在其他地方(例如创建另一个函数)。否则showBoard()会变得过载并使那些阅读代码的人感到困惑。更好的是,考虑使用Board方法的show()类。