如何在C中将int打印到char类型的数组变量中?

时间:2016-05-22 10:48:42

标签: c pointers struct

输入迷宫:

##..##############
##..............##
########..########
##........##....##
##..########..####

预期输出:

##00##############
##++02++04++06++##
########++########
##++08++06##----##
##10########--####

这里我将迷宫作为2d数组存储到结构中:

struct mazecells{
    char symbol;
    int reachable;
    int visited;
    int clear;
    int costs;
};

typedef struct maze {
    struct mazecells M[BUFFERSIZE][BUFFERSIZE];
    int startx, starty;
    int numrows, numcolumns;
    int initdir;
}maze_t

因此,只要我的程序遍历maze path,即'.',我就会使用maze->M[pos.y][pos.x].costs = <cost_value>为该路径分配费用。
现在打印输出如上所示,我需要打印成本值而不是迷宫符号。我写了下面的代码,但它打印一些随机的垃圾字符。我怎样才能实现它。

    if (maze->M[i][j].costs !=0)
    {
        printf("%c",  '0');
        printf("%c",  maze->M[i][j].costs);
    }

它给出了以下输出:

##++##############
##0☺0☻0♥0♦0♣0♠0##
########0♣########
##0     00♠##....##
##++########..####

1 个答案:

答案 0 :(得分:0)

如果您想翻译&#34;费用&#34;要字符串,你必须使用以下之一:         1.使用%d代替%c。         2.使用ascii表并将您的号码转换为char。         3.使用%s与itoa功能。 实际上你是打印数字(成本)的ascii代码而不是数字