重复循环直到按下回车键
Repeating loop until enter is pressed
对于其他发现此问题的人,可以使用conio.h库中的kbhit((函数来完成。插入即可!kbhit((,我把一些东西放在那里,它会正确地循环,然而,我正在寻找一种在没有库的情况下实现这一点的方法
我是一个初学者,尝试在控制台中创建一个简单的动画。动画的单词UP在控制台的右手边向上,单词DOWN在右手边向下。到目前为止,我已经让动画完成了一次迭代,但我正在努力让它重复,看起来就像文本回到顶部或底部,然后再重复一次,直到用户按下ENTER键。
我的书(我是从课本上自学的(让人觉得,除了iostream和windows之外,没有任何特定的库是可能的。h但包括库功能的帮助也很受欢迎,毕竟这是一种学习体验。非常感谢!
对代码的一点解释是,我设置了向上和向下起始位置的坐标,然后移动光标,用空格删除它所在的前一行,然后增加两个,然后放一个新词。我想我可以用第二个while循环来检查ENTER键是否被按下。
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HANDLE screen = GetStdHandle(STD_OUTPUT_HANDLE);
COORD upPos = {20,28};
COORD downPos = {50, 0};
char endState;
while ( SOMETHING )
{
COORD upPos = {20,28};
COORD downPos = {50, 0};
while (upPos.Y >=0)
{
SetConsoleCursorPosition(screen,upPos);
cout << "UP" << endl;
upPos.Y++;
SetConsoleCursorPosition(screen,upPos);
cout << " " << endl;
upPos.Y -=2;
SetConsoleCursorPosition(screen,downPos);
cout << "DOWN" << endl;
downPos.Y--;
SetConsoleCursorPosition(screen,downPos);
cout << " " << endl;
downPos.Y+=2;
Sleep(100);
}
}
}
您最好创建一个自定义的"GetAsyncKeyState"函数,该函数将在windows和linux中使用#IFDEF来选择适当的GetAsyncKey State((或等效函数。对于前
if (GetAsyncKeyState(VK_RETURN))
{
exit = true;
}
相关文章:
- 如何循环打印顶点结构
- 如何在C++中从两个单独的for循环中添加两个数组
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 正在尝试了解输入验证循环
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 循环后如何继续阅读
- Ardunio UNO解决了多个重叠的定时器循环
- Eigen如何在容器循环中干净地附加矩阵
- 在某些循环内使用vector.push_back时出现分段错误
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 为什么我的for循环不能正确获取argv
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- while循环中while循环的时间复杂度是多少
- C++中的高效循环缓冲区,它将被传递给C样式数组函数参数
- 为什么在这个代码结束循环中没有得到结束
- 在基于范围的for循环中使用结构化绑定声明
- 用于C++中带有数组和指针的循环
- 循环中的随机函数
- 如何用回车(回车)终止无限循环
- 退出带有回车符的 while(cin >> s) 循环