【多线程】在显示屏上输出各种字符
来源:互联网 发布:哪个软件可以看腐剧 编辑:程序博客网 时间:2024/05/16 08:45
程序功能
- 【1】两个线程:一个线程的功能是按下键盘终止所有的线程执行;另一个线程是不断的向屏幕上输出字符
- 【2】向屏幕上输出字符的线程,在显示的位置草果屏幕的是时候,要发出报警声音
程序实例
#include <iostream>#include <Windows.h>#include <process.h>#include <time.h>#include <stdlib.h>#include <conio.h>using namespace std;int max1 = 1;int min1 = -1;void checkKey(void* p);void thread1(void* p);#define getRandom(min,max) (rand()%(int)(max-min+1) + min)///////得到min和max之间的一个数(包括min和max)bool repeat = true;////为程序重复执行的值HANDLE hStdOut;CONSOLE_SCREEN_BUFFER_INFO csbi;int main(){ /*srand (time(NULL)); while(1)//////测试产生随机数 { cout<<getRandom(1,10)<<endl; Sleep(1000L); }*/ hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hStdOut,&csbi); CHAR ch = 'A'; _beginthread(checkKey,0,NULL); while(repeat) { //cout<<"我是主线程"<<endl; _beginthread(thread1,0,(void*)(ch++)); Sleep(1000L); } return 0;}void checkKey(void* p)/////终止用repeat变量控制的线程{ _getch(); repeat = false;}void thread1(void* p){ char blockcell = (char)p; bool first = true; COORD oldcoord,newcoord; DWORD result; srand(time(NULL)); newcoord.X = getRandom(0,csbi.dwSize.X-1); newcoord.Y = getRandom(0,csbi.dwSize.Y-1); while(repeat) { Sleep(100L); if(first) first = false; else WriteConsoleOutputCharacter(hStdOut,&(blockcell),1,oldcoord,&result); oldcoord.X = newcoord.X; oldcoord.Y = newcoord.Y; newcoord.X = newcoord.X + getRandom(min1,max1); newcoord.Y = newcoord.Y + getRandom(min1,max1); if(newcoord.X < 0) newcoord.X = 1; else if(newcoord.X == csbi.dwSize.X) newcoord.X = csbi.dwSize.X - 2; else if(newcoord.Y < 0) newcoord.Y = 1; else if(newcoord.Y == csbi.dwSize.Y) newcoord.Y = csbi.dwSize.Y - 2; else continue; Beep(((char)p - 'A') * 100,175); }}
结果展示
0 0
- 【多线程】在显示屏上输出各种字符
- 输出各种字符个数。
- 多线程按序输出字符
- 29 在屏幕上输出各种类型的数据
- 在Linux下,禁止某一个显示屏的输出
- 001_022 Python 在标准输出上打印Unicode字符
- 如何在ubuntu14.04上配置扩展显示屏?(双屏)
- 在显示屏上显示的数字的方法
- 一大段中文字符输出按指定屏幕长度和换行输出在屏幕上的方法。
- 编程实现由键盘输入一个字符后,在屏幕上输出该字符
- 各种分辨率显示屏参数对照
- 向lCD_1602显示屏输入字符
- 编程:从键盘输入一个字符串 最终以读的方式在显示屏输出
- U-boot开机在TFT触摸显示屏输出信息的修改方法
- ati显卡笔记本接投影只能显示在一个显示屏上
- iOS 实现label上字符顺序输出
- Android让程序能适应各种显示屏
- 让Android程序能适应各种显示屏
- LeetCode | Decode Ways
- 用RxJava实现一个ImageLoader
- Qt绘制贝塞尔曲线例程
- 3.4 3.5
- Linux常用命令
- 【多线程】在显示屏上输出各种字符
- 彩票不重复随机数
- centos vnc 使用
- [Windows环境]-NodeJS安装
- Python的异常处理机制
- web搜索框的制作(必应)
- linux查看svn用户名和密码
- Storm实时大数据处理(二)
- CEF3的各个类的作用和实现