我想打印这样的数字:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
所以,我使用这样的代码:
#include<iostream>
> #include<conio.h>
> #include<cstdlib>
> #include<stdio.h>
> #include<time.h>
> #define GRID_SIZE 4 using namespace std;
>
> class Game { private: char grid[GRID_SIZE][GRID_SIZE]; public: void
> generateGrid(); void showGrid(); Game(); };
>
> void Game::generateGrid() { int n = 1;
> for( int x=0; x<GRID_SIZE; x++)
> {
> for( int y= 0; y<GRID_SIZE; y++)
> {
> grid[x][y] = to_string(n).c_str()[0];
> n++;
> }
> } }
>
> void Game::showGrid() {
> printf("------------\n");
> for(int x=0; x<GRID_SIZE; x++)
> {
> for(int y=0; y<GRID_SIZE; y++)
> {
> cout<< " " << grid[x][y] << " |";
> }
> cout << "\n------------\n";
> }
>
> }
>
>
> Game
>
> ::Game()
> {
> generateGrid()
>
> ;
> showGrid(); }
>
> int main() {
> Game game;
>
> return 0;
>
> }
我使用了to_string(number).c_str()[0]; 将其转换为char数据类型。 这样我以后就能改变了。
但在这里,我收到的输出结果是:1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1
对于这样的代码很抱歉,我不知道如何在堆栈溢出中编写代码。
所以问题就在这里
char grid[GRID_SIZE][GRID_SIZE];
您是说网格仅由单个字符组成。
既然你想让网格由数字构成,为什么不写这个呢?
int grid[GRID_SIZE][GRID_SIZE];
还有这个
grid[x][y] = n;
n++;
如果您确实希望网格是多个字符,那么您需要string
而不是char
,如下所示
string grid[GRID_SIZE][GRID_SIZE];
还有这个
grid[x][y] = to_string(n);
n++;