如何在my.h中显示int **array
而不是我的定义中使用的空格?我使用ncurses作为接口,并显示它而不是将字符串放在.c文件中,我创建了一个.h并为接口定义了所有字符串。有人可以解释一下如何做到这一点吗?
基本上,在我的.C文件中,我只是做了#34; mvprintw(...,MAP_1)" 但是从MAP_2到MAP_21,我想用int **数组替换空格
这是my.h:
#ifndef MY_H_
# define MY_H_
# define HEADER_1 " ______________________ _________\n"
# define HEADER_2 " /_ __/ ____/_ __/ __ \\/ _/ ___/\n"
# define HEADER_3 " / / / __/ / / / /_/ // / \\__ \\ \n"
# define HEADER_4 " / / / /___ / / / _, _// / ___/ / \n"
# define HEADER_5 " /_/ /_____/ /_/ /_/ |_/___//____/ \n"
# define MAP_1 "௦----------௦\n"
# define MAP_2 "| |\n"
# define MAP_3 "| |\n"
# define MAP_4 "| |\n"
# define MAP_5 "| |\n"
# define MAP_6 "| |\n"
# define MAP_7 "| |\n"
# define MAP_8 "| |\n"
# define MAP_9 "| |\n"
# define MAP_10 "| |\n"
# define MAP_11 "| |\n"
# define MAP_12 "| |\n"
# define MAP_13 "| |\n"
# define MAP_14 "| |\n"
# define MAP_15 "| |\n"
# define MAP_16 "| |\n"
# define MAP_17 "| |\n"
# define MAP_18 "| |\n"
# define MAP_19 "| |\n"
# define MAP_20 "| |\n"
# define MAP_21 "| |\n"
# define MAP_22 "௦----------௦\n"
#endif /* !MY_H_ */
谢谢!
答案 0 :(得分:0)
使用ncurses
显示字符串。字符串是char
的数组(或者可能是指针中的堆分配区域),它是零字节终止的。
因此将(strcpy
或strncpy
)一些字符串(如MAP_13
)复制到某个字符串缓冲区(可能是char linebuf [128];
)中,并适当填充该缓冲区。有一些常规将俄罗斯方块线(一些array[i]
)转换为字符串。
我建议(为了便于调试,并确保零字节终止)在复制之前清除缓冲区(例如,使用memset(linebuf, 0, sizeof(linebuf));
....)。
int
- s的矩阵,而是使用unsigned char
或某些enum
的矩阵,或直接使用 displayable char
- s
答案 1 :(得分:0)
您可以像这样定义一个char数组数组:
// each of the N elements of array can hold strings up to 19 characters
char array[][20] = {
"one",
"two",
"...",
"forty two"
};
答案 2 :(得分:0)
需要考虑多个方面:
如果OP想要在每一行上打印给定数量的空格, int*
数组会很有用,例如,
int myarray[] = { 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 };
for (n = 1; n <= 22; ++n)
printw("%*s\n", myarray[n], " ");
int**
数组类似(但未提供数据声明...),例如
for (n = 1; n <= 22; ++n)
printw("%*s\n", *myindirect[n], " ");
也可能有用。