void PutNumber(
long x, //输出位置
long y,
long number,//数字
int TextSize=10, //文字的尺寸
int TextProportion=2, //文字的高宽比
int TextInterval=0, //文字之间的间隔
COLORREF tc = 0x000000, //文字颜色(默认为黑)
LPCTSTR font = "宋体" //字体设置
) {
int max;
long int one_data;//当前位数字
settextcolor(tc); // 设置文字颜色
setbkmode(TRANSPARENT); // 设置文字背景为透明色
settextstyle(TextSize * TextProportion, TextSize, font); //设置字体与字的大小
if (!TextInterval)//如果间隔为0,则自动调整间隔
TextInterval = TextSize;
for (max = 0; max < 10; max++) //获得数字位数max
if (number / pow(10, max) < 10)
break;
while (number >= 0) {//按位输出数字
if (max < 0||x>getwidth())//如果位数小于0或者x超过程序边界
return;
one_data = number / (long)pow(10, max);
outtextxy(x, y, (char)(one_data + 48));
number -= one_data * (long)pow(10, max);
--max;
x += TextInterval;
}
}
无注释版:
void PutNumber(
long x,
long y,
long number,
int TextSize=10,
int TextProportion=2,
int TextInterval=0,
COLORREF tc = 0x000000,
LPCTSTR font = "宋体"
) {
int max;
long int one_data;
settextcolor(tc);
setbkmode(TRANSPARENT);
settextstyle(TextSize * TextProportion, TextSize, font);
if (!TextInterval)
TextInterval = TextSize;
for (max = 0; max < 10; max++)
if (number / pow(10, max) < 10)
break;
while (number >= 0) {
if (max < 0||x>getwidth())
return;
one_data = number / (long)pow(10, max);
outtextxy(x, y, (char)(one_data + 48));
number -= one_data * (long)pow(10, max);
--max;
x += TextInterval;
}
}
完整实例:
#include //因为用到了pow函数,当然,也可以手动写该函数功能的代码来免去该头文件
#include
#include
void CT_PutNumber(
long x, //输出位置
long y,
long number,//数字
int TextSize = 10, //文字的尺寸
int TextProportion = 2, //文字的高宽比
int TextInterval = 0, //文字之间的间隔
COLORREF tc = 0x000000, //文字颜色(默认为黑)
LPCTSTR font = "宋体" //字体设置
) {
int max;
long int one_data;//当前位数字
settextcolor(tc); // 设置文字颜色
setbkmode(TRANSPARENT); // 设置文字背景为透明色
settextstyle(TextSize * TextProportion, TextSize, font); //设置字体与字的大小
if (!TextInterval)//如果间隔为0,则自动调整间隔
TextInterval = TextSize;
for (max = 0; max < 10; max++) //获得数字位数max
if (number / pow(10, max) < 10)
break;
while (number >= 0) {//按位输出数字
if (max < 0 || x>getwidth())//如果位数小于0或者x超过程序边界
return;
one_data = number / (long)pow(10, max);
outtextxy(x, y, (char)(one_data + 48));
number -= one_data * (long)pow(10, max);
--max;
x += TextInterval;
}
}
int main() {
initgraph(500, 500);
setbkcolor(WHITE);
cleardevice();//清下屏
CT_PutNumber(0, 0, 123);//默认输出
CT_PutNumber(0, 30, 12345,20);//字体大小更改
CT_PutNumber(0, 60, 123456, 20,6);//字体高宽比更改
CT_PutNumber(0, 180, 1234567, 20, 2,10);//字体间距更改1
CT_PutNumber(0, 210, 12345678, 20, 2, 50);//字体间距更改2
CT_PutNumber(0, 240, 233, 20, 2, 20,RED);//字体颜色更改
CT_PutNumber(0, 280, 233, 20, 2, 20, 0xff6688,"黑体");//字体颜色更改和字体更改
_getch();//不过不行就换成getch();
closegraph();
return 0;
}