将字符串输入到2d数组中,同时在中间添加不同的字符

时间:2013-04-04 03:26:14

标签: c++ arrays 2d output

我正在尝试制作棋盘游戏。我必须输入.txt文件并使其几乎成为网格

  F.F  
  ...  
.......
SSSSSSS
SSSSSSS
  SSS  
  SSS  

让它出来

7     F-.-F
      |\|/|
6     .-.-.
      |/|\|
5 .-.-.-.-.-.-.
  |/|\|/|\|/|\|
4 S-S-S-S-S-S-S
  |/|\|/|\|/|\|
3 S-S-S-S-S-S-S
      |\|/|
2     S-S-S
      |/|\|
1     S-S-S
  a b c d e f g

这有点像我到目前为止,但我只是丢失了如何在输入信息之间添加字符

board.h的一部分

class BoardSet {
public:

    void startingBoard(std::string line, int row);
    void print();

private: 
char board[6][6];

};

board.cpp的一部分

void BoardSet::startingBoard(std::string line, int row)
{
for(int i = 0; i < 7; i++)
{
    board[row][i] = line[i];

}

}

void BoardSet::print()
{
int row = 7;

for(int i = 0; i < 7; i++)
{
    for(int j = 0; j < 7;j++)
    {
        cout << board[i][j];
    }
    cout << endl;
}

}

main.cpp的一部分

void initalizeBoard(istream& in, BoardSet& board)
{
string line;
int row = 0;
getline(in, line);
while(in)
{
    board.startingBoard(line, row);
    row++;
    getline(in, line);

}
board.print();


}

我需要的只是一个小小的指导,或者只是一个简单的例子,我可以从那里拿走它,我只是完全难过,不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

char board[6][7];

for(int i = 0; i < 7; i++)
{
    for(int j = 0; j < 7;j++)
    {
        cout << board[i][j];
    }
    cout << endl;
}

你的数组是6个项目,每个项目深7个项目! 但你正在循环7 x 7?

还是我错过了这一点?

我无法看到您在txt文件中的位置。

我不相信......

void BoardSet::startingBoard(std::string line, int row)
{
for(int i = 0; i < 7; i++)
{
    board[row][i] = line[i];

}

}

我认为这必须制动......因为你循环了7次...... 0,1,2,3,4,5,6 ......而你只是填充数组的第一个维度

试试这个......

        void BoardSet::setupBoard() // edit
        {
        for(int i = 0; i < 6; i++)
        {
            for(int j = 0; j < 7;j++)
            {
                board[i][j] = line[i]; ////////   board[i][j] = line[i];
            }
        }
        }

        void BoardSet::startingBoard(std::string line, int row)
        {
           for(int i = 0; i < 6; i++) // 6 not 7
           {
              board[row][i] = line[i];

           }
}    

    void BoardSet::print()
    {
    int row = 7;

    for(int i = 0; i < 6; i++)
    {
        for(int j = 0; j < 7;j++)
        {
            cout << board[i][j];
        }
        cout << endl;
    }