Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C语言制作带有可移动字符的带边框方框_C - Fatal编程技术网

用C语言制作带有可移动字符的带边框方框

用C语言制作带有可移动字符的带边框方框,c,C,我有两个问题,我正在学习C语言,我想我应该休息一下,试着把我学到的东西用在测试中。但后来我被卡住了 第一个问题是创建一个空框。我似乎不能这样做。我可以创建一个框,缺少底部部分,但它由“*”填充,如果我只做',那么c编译器会声明:Create\u border.c:12:14:错误:预期表达式 第二个问题是,我不知道如何连接到键盘,这样当我上下左右按下一个字符时,@在这种情况下,当它移动到边缘时,它就会停止 到目前为止,我只知道: #include <stdio.h> #define

我有两个问题,我正在学习C语言,我想我应该休息一下,试着把我学到的东西用在测试中。但后来我被卡住了

第一个问题是创建一个空框。我似乎不能这样做。我可以创建一个框,缺少底部部分,但它由“*”填充,如果我只做
'
,那么c编译器会声明:
Create\u border.c:12:14:错误:预期表达式

第二个问题是,我不知道如何连接到键盘,这样当我上下左右按下一个字符时,
@
在这种情况下,当它移动到边缘时,它就会停止

到目前为止,我只知道:

#include <stdio.h>

#define MAX_Y 6
#define MAX_X 6

void print_board(char board[MAX_Y][MAX_X]);

int main(int argc, char *argv[]) {

    char exampleBoard[MAX_Y][MAX_X] = {
        {'x','-','-','-','-','x'},
        {'|','*','*','*','*','|'},
        {'|','*','*','*','*','|'},
        {'|','*','*','*','*','|'},
        {'|','*','*','*','*','|'},
        {'x','-','-','-','-','x'}
    };

    print_board(exampleBoard);

    return 0;
}

void print_board(char board[MAX_Y][MAX_X]) {

    int row = 0;
    int col = 0;

    for(row = 0; row < MAX_Y; row++) {
        for(col = 0; col < MAX_X; col++) {
            printf("%c", board[row][col]);
        }

        printf("\n");
    }

    printf("\n\n");
}
因此,以下是我的期望:

  • 一个空框,框中任何地方都没有
    “*”
    @
    字符。
  • 移动
    @
    并在到达边界时停止的能力。
非常感谢您的帮助。

在终端中,“空箱”是一个空格字符。您可以用
'
而不是
'
来编写它

然后,为了读取键盘,您可以直接从终端使用syscall进行读取。但是,终端的默认配置将迫使您在每个键之间按
enter
,以使您的读取工作

注意:您可以使用类似的库使这种ASCII编程更简单。

您可以用
'
(空格字符)替换
'
。还有,你能告诉我你在用什么操作系统吗?因为不同操作系统的箭头键代码不同。
x----x
|****|
|****|
|****|
|****|