C语言之接收方向键指令让屏幕上的输出能移动

首先,需要了解一下控制台坐标

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
    int x=0,y=0,i;
    char key; // 接受输入
    putchar(‘O‘); // 一个小点
    while(1)
    {
    key=getch(); // 不带回显的接受输入
    if(key==‘q‘) break; // 输入wasd,输入q退出
    switch(key)
    {
        //设置任意热键
//    case ‘w‘: (x>0?--x:x);break;
//    case ‘s‘: x++;break;
//    case ‘a‘: (y>0 ? --y:y);break;
//    case ‘d‘: ++y;break;
//    default:break;
//////////设置任意热键
    case -32:
         key=getch();
            switch(key)
            {
            case 72:
            (x>0?--x:x);break;
            case 80:
            x++;break;
            case 75:
            (y>0 ? --y:y);break;
            case 77:
             ++y;break;
            default:break;
            }
            default:break;
    }
    system("cls"); // 清屏
    for(i=0;i<x;i++) printf("\n");
    for(i=0;i<y;i++) printf(" ");
    putchar(‘O‘); // 输出
}
}

时间: 2024-10-11 15:10:00

C语言之接收方向键指令让屏幕上的输出能移动的相关文章

【C语言】接收字符,大小写字符相互转换后输出,数字不输出

#include<stdio.h> #include<stdlib.h> void main() { int ch;     while((ch=getchar())!=EOF)        if(ch>=65&&ch<=95)       {             ch+=32;         putchar(ch);    }        else    { ch-=32; putchar(ch); } }

编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件

#include<stdio.h> void sort(int*x,int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(x[j]>x[k]) k=j; if(k!=i) { t=x[i]; x[i]=x[k]; x[k]=t; } } } void main() { FILE*fp; int *p,i,a[10]; fp=fopen("array.out","

C语言之控制台读取上下左右方向键指令

首先,可以检测任何按键键值 // 首先,检测任何按键的代码 #include<stdio.h> #include<conio.h> int main() { char ch; while((ch=getch())!=0x1B) /* ESC to quit */ { printf("%d \n", ch); } } 分别是上下左右键的键值. 其次,控制台读取方向键指令 方法一 //捕捉键值 #include<stdio.h> #include<

【C语言】15-预处理指令1-宏定义

预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号 3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾.习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件 4.C语言提供的预处理指令主要有:宏

C语言中的预处理指令和递归

C语言中的预处理指令和递归 上个月就完成了黑马程序员的IOS基础视频教程,还记得刚开始学的时候,什么都不懂,现在学完基础感觉真的很不错! 每天都在期待着去黑马,憧憬着以后的生活.去黑马的路越来越接近了,我真的好兴奋!这些天一直在复习,感觉C语言中的预处理指令和递归都忘得差不多了. 预处理指令:是在编译器把代码编译成0跟1之前就会执行的一些指令.所有的预处理指令都是以#开头的. 预处理指令分为三种: 1.宏定义 用法--如:#define MYINT  int   表示把右边的int 在本代码以下

TinyOS系列——网关接收服务器指令模块,实现的难题及解决方案

今天刚刚把棘手已久的问题解决,感觉特别开心,想记录一下解决的思路. ------------------------------------------------分割线---------------------------------------------------- 1)首先,假设节点内已经烧好了写好的程序,那么通过PC端的串口调试助手,完全可以完成这个任务 2)其次,节点通过串口接收数据用的是ATmega128,那ATmega128串口这块如何配置? 推荐一个网址,http://blo

第九章 多语言环境的支持和多屏幕的适配(1)

第九章 多语言环境的支持和多屏幕的适配 资源是在代码中使用到的,并且在编译时被打包进应用程序的附加文件.出于加载效率的考虑,资源被从代码中分离出来,而且XML文件被编译进二进制代码中.在Android中,程序代码可以不直接和资源发生关系,而是通过R文件提供的索引来间接的引用某一个资源.Android系统会自动根据用户当前的环境,和屏幕分辨率情况,自动选用最合适的资源.正是基于Android系统这种独特的处理方式,开发者可以编写多套资源文件,从而很方便的实现多语言环境的支持和多种屏幕的适配. 本章

C语言 在屏幕上输出菱形图案

在屏幕上输出以下图案: * *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** * 观察每行的变化规律,找到算法. 代码如下: #include<stdio.h> int main() { int i,j,k; for(i=0;i<7;i++)/*i为行,先输出前7行*/ { for(j=0;j<6-i;j++)/*输出*前空格*/ { print

C语言实现在屏幕上输出杨辉三角

★在屏幕上打印杨辉三角 #include<stdio.h> int main() { int i = 0, j = 0, num = 0,k = 0; printf("请输入要输出的杨辉三角的行数:"); scanf("%d", &num); for (i = 1; i <= num; i++) { k = 1;         //每行须以1开头,所以将K定义在第二层循环之外 for (j = 1; j <= i; j++) { p