C语言使用getch()读取方向键

 更新时间:2021年07月06日 09:39:36   作者:天岁  
getch()是编程中所用的函数,这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性

初衷:

在解决N皇后问题时需要使用方向键实现布局切换,于是就在网上查找资料,感觉自己收获不小,就把自己总结的一些知识点给记录下来。

总结:

1.getch()读取字符需要一次。

2.getch()读取方向键或功能键需要两次。

(第一次的返回值为0或者224(方向键)
getch函数在读取一个功能键或者箭头(方向)键盘时,函数会返回两次,第一次调用返回0或者0xE0,第二次调用返回实际的键值。

72,80,75,77返回值分别是↑↓←→。

代码演示:

while (1){   //无限循环
        //使用getch()读取方向键,读取方向键需要读取两次
          if (ch1=getch()){
             ch2=getch();//第一次调用getch(),返回值224
             switch (ch2){//第二次调用getch()
             case 75: {  //←的ascll
                 if(current-1>=0){
                    current--;
                 }else{
                     current = tol-1;
                 }
                    system("cls\n");
                    cout<<"请输入皇后的数量:"<<n<<endl;
                    cout<<"一共有"<<tol<<"种布局"<<endl<<endl;
                    show(current);
                break;
             }
             case 77: {
                 if(current+1<=tol-1){
                    current++;
                 }else{
                     current = 0;
                 }
                    system("cls\n");
                    cout<<"请输入皇后的数量:"<<n<<endl;
                    cout<<"一共有"<<tol<<"种布局"<<endl<<endl;
                    show(current);

                 break;
             }
             default:cout<<"输入错误!"<<endl;break;

             }
          }

到此这篇关于C语言使用getch()读取方向键的文章就介绍到这了,更多相关C语言读取方向键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • C# 设计模式系列教程-外观模式

    C# 设计模式系列教程-外观模式

    外观模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。
    2016-06-06
  • 利用C#实现AOP常见的几种方法详解

    利用C#实现AOP常见的几种方法详解

    AOP面向切面编程(Aspect Oriented Programming),是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。下面这篇文章主要给大家介绍了关于利用C#实现AOP常见的几种方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • C#使用Twain协议实现扫描仪连续扫描功能

    C#使用Twain协议实现扫描仪连续扫描功能

    这篇文章主要介绍了C#使用Twain协议实现扫描仪连续扫描,只需一行代码,就可实现一次扫描多张,且不需要更改扫描仪的任何设置,需要的朋友可以参考下
    2022-01-01
  • 在C#中根据HardwareID获取驱动程序信息的实现代码

    在C#中根据HardwareID获取驱动程序信息的实现代码

    这篇文章主要介绍了C#中根据HardwareID获取驱动程序信息的实现代码,需要的朋友可以参考下
    2016-12-12
  • C#定时关闭窗体实例

    C#定时关闭窗体实例

    这篇文章主要介绍了C#定时关闭窗体实例,在Windows桌面应用程序开发中具有一定的实用价值,需要的朋友可以参考下
    2014-10-10
  • C#中通过API实现的打印类 实例代码

    C#中通过API实现的打印类 实例代码

    这篇文章介绍了,C#中通过API实现的打印类 实例代码,有需要的朋友可以参考一下
    2013-08-08
  • Linq两个List集合取交集的实现

    Linq两个List集合取交集的实现

    这篇文章主要介绍了Linq两个List集合取交集的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • C#实现将PDF转为Excel的方法详解

    C#实现将PDF转为Excel的方法详解

    通常,PDF格式的文档能支持的编辑功能不如office文档多,针对PDF文档里面有表格数据的,如果想要编辑表格里面的数据,可以将该PDF文档转为Excel格式。本文将介绍如何利用C#实现PDF转Excel,需要的可以参考一下
    2022-04-04
  • C#操作串口通信协议Modbus的常用方法介绍

    C#操作串口通信协议Modbus的常用方法介绍

    这篇文章介绍了C#操作串口通信协议Modbus的常用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C# LINQ to XML应用介绍

    C# LINQ to XML应用介绍

    .Net又引入了LINQ,于是LINQ to XML也就应运而生,所以在.Net中,不仅可以用W3C XML DOM标准,还可以使用LINQ to XML来操作XML文档。下面就来简单介绍一下如何使用LINQ to XML
    2012-11-11

最新评论