初衷:
在解决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