服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C语言使用getch()读取方向键

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

2022-11-24 11:04天岁 C#

getch()是编程中所用的函数,这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性

初衷:

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

总结:

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

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

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

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

代码演示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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语言读取方向键内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/1305536110-dym/p/14975348.html

延伸 · 阅读

精彩推荐
  • C#C#利用时间和随即字符串创建唯一的订单编号

    C#利用时间和随即字符串创建唯一的订单编号

    本文介绍了利用时间和随机字符串组合生成唯一订单号的示例,从而保证订单号不会重复,希望能够对大家有所帮助。...

    Darren Ji4082021-11-17
  • C#Unity Shader实现水波纹效果

    Unity Shader实现水波纹效果

    这篇文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    贪玩的孩纸时代6192022-09-06
  • C#C# 拷贝数组的几种方法(总结)

    C# 拷贝数组的几种方法(总结)

    下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C#教程网9452021-12-03
  • C#C#关于Task.Yeild()函数的讨论

    C#关于Task.Yeild()函数的讨论

    这篇文章主要介绍了C#中关于Task.Yeild()函数的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    白烟染黑墨5382022-09-26
  • C#c# 生成文字图片和合并图片的示例

    c# 生成文字图片和合并图片的示例

    这篇文章主要介绍了c# 生成文字图片和合并图片的示例,帮助大家更好的利用c#处理图片,感兴趣的朋友可以了解下...

    李志强7102022-10-20
  • C#详解C# ConcurrentBag的实现原理

    详解C# ConcurrentBag的实现原理

    ConcurrentBag实现了IProducerConsumerCollection接口,该接口主要用于生产者消费者模式下,可见该类基本就是为生产消费者模式定制的。然后还实现了常规的...

    InCerry10712022-11-23
  • C#C#实现截取验证码图片

    C#实现截取验证码图片

    这篇文章主要为大家详细介绍了C#实现截取验证码图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    老狗子11132022-03-06
  • C#C#实现简单文本编辑器

    C#实现简单文本编辑器

    这篇文章主要为大家详细介绍了C#实现简单文本编辑器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    xujinshan36111122022-07-19