中包含的可调用的函数有
int
CDECL
MessageBoxPrintf
(TCHAR
*
szCaption,
TCHAR
*
szFormat,
...)
//TCHAR就是宽字符,你学过C++应该知道CHAR,TCHAR就是CHAR的两倍长度,用来兼容UNICODE的,至于UNICODE和ANSI的区别,你自己去查了。CDECL这个是C语言函数的默认调用惯例,调用惯例是什么,就是操作系统如何调用这个函数,包含了如何保存参数如何返回值等等,具体可以去查。
{
TCHAR
szBuffer
[1024]
va_list
pArgList
//这里提一些必须的东西,va这个开头的宏都是处理可变参数列表的,什么是可变参数列表,意思就是可以变长的参数列表,这个在WINDOWS下用得非常多,比如printf的函数,里面用类似很多%d的格式控制,也有实际输出的内容,都是作为函数的参数,具体有多少要看实际情况,所以可变参数列表在这里就起作用了。
va_list就是申明一个可变参数列表的变量
va_start
(pArgList,
szFormat)
//va_start用于初始化可变参数列表,具体的效果就是把szFormat这个可变参数列表的第一个参数地址赋给了pArgList
_vsntprintf
(szBuffer,
sizeof
(szBuffer)
/
sizeof
(TCHAR),
szFormat,
pArgList)
//这个很简单,就是把szFormat和pArgList格式成字符串放在szBuffer里了
va_end
(pArgList)
//把pArgList清0,这个只是为了程序的规范。
return
MessageBox
(NULL,
szBuffer,
szCaption,
0)
显示一个内容为szBuffer标题为szCaption的默认对话框,只有一个确定的那种
}
int
WINAPI
WinMain
(HINSTANCE
hInstance,
HINSTANCE
hPrevInstance,
PSTR
szCmdLine,
int
iCmdShow)
{
int
cxScreen,
cyScreen
cxScreen
=
GetSystemMetrics
(SM_CXSCREEN)
cyScreen
=
GetSystemMetrics
(SM_CYSCREEN)
//取得屏幕的宽高
MessageBoxPrintf
(TEXT
("ScrnSize"),
TEXT
("The
screen
is
%i
pixels
wide
by
%i
pixels
high."),
cxScreen,
cyScreen)
//调用上面的那个函数,TEXT用于转换为UNICODE
return
0
}
#include<iostream>#include<windows.h>
using namespace std
void setColor(WORD F,WORD B)//定义一个函数设置文本颜色
void main()
{
for(){
int* pint pos=0int nint numint i,j
setColor(FOREGROUND_BLUE|FOREGROUND_GREEN,0)
for () { cout<<"请输入玩游戏的人数,不能小于1:\n"
cin>>nif(n) break}
p=new int[n]
for( j=0j<nj++) p[j]=1
for() { cout<<"请输入间隔数:不能小于1;\n"
cin>>num if(num) break}
//_______________________________________________________________
cout<<"Game is beginning...\n"
cout<<"依次出队的小孩子是:\n"
setColor(FOREGROUND_BLUE|FOREGROUND_RED,0)
//------------------------------------------------------------------
for()//程序的关键处
{ int z=nint t=0
for(i=0i<ni++) if(p[i]==0) z--
if(z==1) break
for (pos)
{pos=pos%n<br/>if(p[pos]!=0)t++<br/>pos++<br/>if(t==num) break}
cout<<" "<<pos
p[pos-1]=0
}
//---------------------------------------------------------------------
cout<<endl
setColor(FOREGROUND_RED,0)
//输出结果:
for(int t=0t<nt++)
if(p[t]) cout<<"最后的赢家是:第"<<t+1<<"个小孩子!"<<endl
setColor(FOREGROUND_GREEN,0)
cout<<"想再玩吗?y or n\n"
char kcin>>kif(k=='n') break
}
}
void setColor(WORD F,WORD B)//定义一个函数设置文本颜色
{ HANDLE hc=GetStdHandle(STD_OUTPUT_HANDLE)
SetConsoleTextAttribute(hc,F|B)
}
你看看这个看能否有所帮助