如何将以下java函数转换为C++?

Sal*_*ban 2 c++ java

如果我有以下Java代码:

int[][] readAPuzzle()
{
    Scanner input = new Scanner(System.in);

    int[][] grid = new int[9][9];
    for (int i=0; i<9; i++)
      for (int j=0; j<9; j++)
        grid[i][j] = input.nextInt();

    return grid;
}

public static void main(String[] args) {
    // Read a Sudoku puzzle
    int[][] grid = readAPuzzle();
}
Run Code Online (Sandbox Code Playgroud)

如何将其转换为C++?我挂断了传递数组.这是我的尝试:

#include <iostream>

using namespace std;

const int puzzle_width = 9;
const int puzzle_height = 9;

void readAPuzzle(int (&grid)[puzzle_height][puzzle_width])
{
    for(int i = 0; i < 9; i++)
        for(int j = 0; j < 9; j++)
            grid[i][j] = cin >> grid[i][j];

    return;
}

int main()
{
    int[9][9] grid;
    readAPuzzle(grid);
}
Run Code Online (Sandbox Code Playgroud)

我一般做错了什么?

dir*_*tly 5

您需要将输入文本读入数组grid并传递给它.

grid[i][j] = cin >> grid[i][j];
Run Code Online (Sandbox Code Playgroud)

不执行您的想法,它会尝试将类型的对象分配istreamgrid[ i ][ j ]

cin >> grid[i][j]; 
Run Code Online (Sandbox Code Playgroud)

但是足够了.

另外,请注意,在C++中,维度遵循标识符,如下所示:

int grid[9][9];
Run Code Online (Sandbox Code Playgroud)