1.在这个.cpp文件下新建一个名字为example.txt文件,
2.在example.txt 文件中输入班级同学的名字,以空格作为分隔
3.运行此代码,用鼠标右键点击控制台选出幸运观众
4.输入空格重新进行下一次抽选,再次点击鼠标右键产生幸运观众。
#include <fstream>
#include <iostream>
#include <string>
//打印彩色的helloworld
#define Kong 32
#include <windows.h>
//GetStdHandle和SetConsoleTextAttribute在头文件windows.h中
#include <iostream>
#include <ctime>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)//mouse
#include <conio.h>
#include <cstdlib>
#include <string.h>
#include <string>
struct data_f {
char num[100][100];
int length;
};
using namespace std;
//从文件中加载数据,需要在同级别目录下新建一个文本文件,名字叫做example.txt-------------------------------------------------------------
//-------------------------------------------------
data_f load_data(data_f& data) {
int i, datalen = 0;
ifstream file("example.txt");
while (!file.eof())
file >> data.num[datalen++];
file.close();
data.length = datalen;
return data;
}
/*
int main (){
data_f data;
load_data(data);
for(int i=0;i<data.length;i++){
cout<<data.num[i]<<" ";
}
getchar();
}
*/
/*
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
*/
//在指定位置打印 指定颜色的 字体, 第一个参数 为 位置参数, 第二个参数为 颜色
void SetColor(COORD pos, unsigned short ForeColor = 3) {
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); //得到句柄
//GetStdHandle()它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值),
//可以传入三个参数,STD_OUTPUT_HANDLE 表示标准输出的句柄
//COORD pos={50,10};
SetConsoleCursorPosition(hCon, pos);//SetConsoleCursorPosition()是API中定位光标位置的函数。
SetConsoleTextAttribute(hCon, ForeColor);//设置控制台文字属性
}
void hidden()//隐藏光标,不让光标显示
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut, &cci);
cci.bVisible = 0;//赋1为显示,赋0为隐藏
SetConsoleCursorInfo(hOut, &cci);
}
int main() {
COORD pos1 = { 50,10 };
COORD pos2 = { 50,10 };
COORD pos3 = { 50,20 };
COORD pos4 = { 0,0 };
int i = 0;//控制颜色
pos1.Y = 10;
char p, a;
data_f data;
load_data(data);
int t;
srand(time(0));
string temp;
int left, up;
while (1) {
left = rand() % 500;
t = rand() % data.length; // random number 1-10
temp = data.num[t];
//pos2.X=left;
SetColor(pos2, left);
hidden();
// increaseFontSize();
cout << " " << temp << " " << endl;
Sleep(20);
system("CLS");
while ( KEY_DOWN(VK_RBUTTON))
{
SetColor(pos2, 2);
cout << "stand up ..." << temp << endl;
system("pause");
}
/*
printf("鼠标右键是否按下:");
if (KEY_DOWN(VK_RBUTTON))printf("是");
else printf("否");
printf("\n");
*/
/*while (_kbhit())
{
if ((p = _getch()) == -32) p = _getch();
if (p == Kong) {
// increaseFontSize();
SetColor(pos2, 2);
cout << "stand up ..." << temp << endl;
system("pause");
break;
}
}*/
}
getchar();
}