windows控制台程序下打印彩色字和获取系统时间的函数

1. 打印彩色字:

    利用windows提供的SetConsoleTextAttribute()设置字体颜色,代码如下:

#include <windows.h>
int my_printf(char *format, ...)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
    int cnt;

    va_list list;
    va_start(list, format);
    cnt = vprintf(format, list);
    va_end(list);

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);

    return cnt;
}

打印完后将字体颜色重新设置为白色,此函数调用方法和printf()相同。


2. 获取系统ms级时间:

  windows下提供了timeGetTime()函数获取系统ms级时间,注意,要使用此函数,需要include <windows.h>并且添加winmm.lib库。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include<iostream> #include<iomanip> #include<windows.h> using namespace std; void setcolor(unsigned short color) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,color); } int runnian(int x) { if(x%4==0) {if(x%100==0) {if(x%400==0) x=2; else x=1;} else x=2;} else x=1; return(x); } void main() { int f=1,year,n,m,t,a; cout<<"请输入年份"<<endl; cin>>year; int k[12]={31,27+runnian(year),31,30,31,30,31,31,30,31,30,31}; for(a=1,n=0;a<year;a++) n=n+runnian(a); m=(n+1)%7; for(a=0;a<=11;a++) { switch(f) { case 1:setcolor(5);cout<<setw(16)<<"一月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 2:setcolor(5);cout<<setw(16)<<"二月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 3:setcolor(5);cout<<setw(16)<<"三月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 4:setcolor(5);cout<<setw(16)<<"四月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 5:setcolor(5);cout<<setw(16)<<"五月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 6:setcolor(5);cout<<setw(16)<<"六月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 7:setcolor(5);cout<<setw(16)<<"七月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 8:setcolor(5);cout<<setw(16)<<"八月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 9:setcolor(5);cout<<setw(16)<<"九月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 10:setcolor(5);cout<<setw(16)<<"十月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 11:setcolor(5);cout<<setw(16)<<"十一月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; case 12:setcolor(5);cout<<setw(16)<<"十二月"<<endl;setcolor(3);cout<<"****************************";setcolor(7);cout<<endl;break; } setcolor(4); cout<<" Sun"; setcolor(7); cout<<" Mon Tue Wed Thu Fri"; setcolor(4); cout<<" Sat"<<endl; setcolor(7); if(f==1||f==5||f==10) {setcolor(9);cout<<setw(4*m+4)<<"1";setcolor(7);} else {if(m==0||m==6) {setcolor(4);cout<<setw(4*m+4)<<"1";setcolor(7);} else cout<<setw(4*m+4)<<"1";} if(m+1==7) cout<<endl; f++; for(t=2;t<=k[a];t++) { if(a==8&&t==10) {setcolor(9);cout<<setw(4)<<t;setcolor(7);} else {if((m+t)%7==0||(m+t)%7==1) {setcolor(4);cout<<setw(4)<<t;setcolor(7);} else cout<<setw(4)<<t;} if((m+t)%7==0) cout<<endl; } cout<<endl; setcolor(3);cout<<"****************************";setcolor(7);cout<<endl; m=(m+k[a])%7; cout<<endl<<endl; } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值