如何在C ++中打印char数组中的字符

时间:2014-04-10 01:37:02

标签: c++ arrays integer character

在这段代码中,我使用的是整数数组,因为我觉得如果它们是整数,我正在处理的项目会更容易。在这个数组中,我将每个位置分配给46(ASCII为'。')并打印出该ASCII的(char)版本。我制作棋盘的原因是因为我将在这个棋盘上放置数字,但我想保持'。'我打印。

当前输出:

  .   .   .   .   .

  .   .   .   .   .

  .   .   .   .   .

  .   .   .   .   .

  ☺   .   .   .   .

期望的输出:

  .   .   .   .   .

  .   .   .   .   .

  .   .   .   .   .

  .   .   .   .   .

  1   .   .   .   .

使用(char)进行转换将打印'。' (ASCII 46)就好了,但是我的数字会随着当前输出的指示而变化。

我该如何解决这个问题?我一直在盯着这个。

我的代码:

using namespace std;
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <math.h>


void addRandomNumberToBoard(int *board, int &arrSize)
  {
  srand ((int)time(0)); //seed random

  int destination;

  do destination= rand() % (arrSize-1);

  while ( board[destination] != '.'); // place on a random spot on the board

  int randomNumber=rand() < RAND_MAX / 2 ? 1 : 2; //generate number 1 or 2
  board[ destination] = randomNumber;  //place the number there
  }

int printBoard(int &i, int &arrSize, int *board)
  {

  for(i=0; i<arrSize; i++)
      {
      if( i % 5 == 0 && i!=0) //after every 5 positions print a new line
        cout<<"\n\n";
      cout<<"   "<<(char)board[i]; //this MIGHT be the problem
      }
  }



int main()
  {
  int i;
  int arrSize=25;
  int board[arrSize];

  for(i=0; i<arrSize; i++) //declare all positions as ASCII '.'
    board[i]='.'; //this MIGHT be the other problem

  addRandomNumberToBoard(board,arrSize);
  printBoard(i, arrSize, board);
  }

3 个答案:

答案 0 :(得分:0)

为什么你没有使用char数组?我觉得这样会更容易。

如果我能

,我会发表评论

答案 1 :(得分:0)

数字1的ascii编号为49。如果您要打印数字1,则必须发送49的ascii值。对于0

,数字从48开始
0 - 48
1 - 49
2 - 50
3 - 51
4 - 52
5 - 53
6 - 54
7 - 55
8 - 56
9 - 57

因此,您只需为任何数字添加48即可。但这仅适用于个位数。

我建议你使用一个字符数组,因为你可以看到这很复杂,收效甚微。

检查此ascii表here

答案 2 :(得分:0)

只需在您的值中添加48即可。即。

board[destination] = randomNumber + 48; // Ascii 49 is '1', 50 is '2'.

有关可打印字符的小数值,请参阅ascii chart