让控制台漂亮一点

发个老外写的操作控制台背景颜色的头文件
  1. //ConsoleColor.h
  2. #pragmaonce
  3. #include<iostream>
  4. #include<windows.h>
  5. inlinestd::ostream&blue(std::ostream&s)
  6. {
  7. HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  8. SetConsoleTextAttribute(hStdout,FOREGROUND_BLUE
  9. |FOREGROUND_GREEN|FOREGROUND_INTENSITY);
  10. returns;
  11. }
  12. inlinestd::ostream&red(std::ostream&s)
  13. {
  14. HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  15. SetConsoleTextAttribute(hStdout,
  16. FOREGROUND_RED|FOREGROUND_INTENSITY);
  17. returns;
  18. }
  19. inlinestd::ostream&green(std::ostream&s)
  20. {
  21. HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  22. SetConsoleTextAttribute(hStdout,
  23. FOREGROUND_GREEN|FOREGROUND_INTENSITY);
  24. returns;
  25. }
  26. inlinestd::ostream&yellow(std::ostream&s)
  27. {
  28. HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  29. SetConsoleTextAttribute(hStdout,
  30. FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY);
  31. returns;
  32. }
  33. inlinestd::ostream&white(std::ostream&s)
  34. {
  35. HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  36. SetConsoleTextAttribute(hStdout,
  37. FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
  38. returns;
  39. }
  40. structcolor{
  41. color(WORDattribute):m_color(attribute){};
  42. WORDm_color;
  43. };
  44. template<class_Elem,class_Traits>
  45. std::basic_ostream<_Elem,_Traits>&
  46. operator<<(std::basic_ostream<_Elem,_Traits>&i,color&c)
  47. {
  48. HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  49. SetConsoleTextAttribute(hStdout,c.m_color);
  50. returni;
  51. }
测试代码:
  1. #include<iostream>
  2. #include"ConsoleColor.h"
  3. usingnamespacestd;
  4. intmain()
  5. {
  6. cout<<green<<"Thistextiswritteningreen"
  7. <<white<<std::endl;
  8. cout<<color(FOREGROUND_RED|FOREGROUND_GREEN)
  9. <<"Thistexthasareallyexitingcolor!"
  10. <<white<<std::endl;
  11. return0;
  12. }

另外也可以运用system函数加dos命令来改变控制台的情况,如:
  1. system("titlename");
  2. system("color2f");
  3. system("...");
纯属娱乐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值