当前位置:   article > 正文

用c++模拟实现一个流水灯

用c++模拟实现一个流水灯

话不多说,先看代码。

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<Windows.h>
  4. //做一个流水灯
  5. int main()
  6. {
  7. HANDLE handle;
  8. COORD pos = { 0,0 };
  9. while (1)
  10. {
  11. for (int i = 0; i < 10; ++i)
  12. {
  13. printf("||||||||||");
  14. Sleep(100);
  15. printf("\b\b\b\b\b\b\b\b\b\b");
  16. printf(" ");
  17. printf("\n");
  18. }
  19. handle = GetStdHandle(STD_OUTPUT_HANDLE);
  20. SetConsoleCursorPosition(handle, pos);
  21. }
  22. }

核心思想:

此处使用了c++提供的标准库函数实现光标回到dos界面的(0,0)位置,首先定义一个属于当前dos窗口的句柄,然后利用移动光标位置的函数在执行完十次之后将光标回到(0,0)处。

在这里笔者想强调:\b应该注意的细节问题。

一个\b的含义是将光标向前移动一位,然而并不做任何修改。请看

  1. //test1.1
  2. #include<stdio.h>
  3. main(){
  4. printf("abcde\b ");//注意到\b后面加了一个空格
  5. }

test1.1运行结果

代码注释中特别强调了\b后加了空格,事实上,若\b后不加空格,打印结果如下,与没加\b时打印结果相同:

 

删掉test1.1中\b后空格的结果

打印\b的作用并不是将之前的字符从屏幕上清除,而是将光标前移一个位置,而仅仅将光标前移并不能将此前的字符清除,除非输出一个空格将其覆盖,这便是程序test1.1所实现的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/684112
推荐阅读
相关标签
  

闽ICP备14008679号