【问题标题】:Converting int to char?将int转换为char?
【发布时间】:2016-04-24 11:19:47
【问题描述】:
ref void init_board (ref int side, ref char[][] board)  //make empty symbol chessboard
{
    const char black = ' ';
    const char white = 0xB0;

    board[0][0] = ' ';
    for (int i = 1; i <= side; i++)
    {
        board[i][0] = 0x30 + i;  //Setting nums; "Error: Cannot convert int to char"
        board[0][i] = 0x40 + i;  //Setting letters; same here
        for (int j = 1; j <= side; j++)
            board[i][j] = (i+j)%2 == 0 ? black : white; //making black-white board
    }
}

我正在尝试制作一个简单的符号棋盘。如何根据行/列数正确设置数字和字母? board[i][0] = 0x30 + i;(或 0x40)在 C++ 中有效,但在 D 中无效。

【问题讨论】:

  • ref void 是做什么的?
  • @Kerbiter 为什么你在那里使用 ref ?在其中任何一个? ref int 仅被读取时完全是浪费,ref char[][] 同样只是在这里添加了另一个间接性,没有任何好处。

标签: char int d


【解决方案1】:

您已经在std.conv 模块中获得了所需的内容。 - 最好使用std.conv.to。

import std.conv;
import std.stdio;

void main() {
  int i = 68;
  char a = to!char(i);
  writeln(a);
}

输出:

D

【讨论】:

    【解决方案2】:
    board[i][0] = cast(char)(0x30 + i);
    

    请记住,当这样转换时,它可能会溢出。

    【讨论】:

    • 使用std.conv.to 在缩小转换时收到溢出警告。
    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 2011-02-25
    • 2015-11-23
    • 2015-12-18
    • 2017-04-25
    • 2015-01-29
    • 1970-01-01
    相关资源
    最近更新 更多