免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: plp626
打印 上一主题 下一主题

C 控制台 输出彩色字符的函数请教 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-06-08 17:16 |只看该作者
别搞了,白费力气,二楼的代码是在linux下才可以成功的,windows不行;

这是网上的一段代码,但是编译有些问题:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main(int argc, char *argv[])
  5. {
  6. HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  7. if (hStdout=INVALID_HANDLE_VALUE) return 0;

  8. CONSOLE_SCREEN_BUFFER_INFO csbinInfo;
  9. if (! GetConsoleScreenBufferInfo(hStdout, &csbiInfo))
  10. {
  11.     MessageBox(Null, "GetConsoleScreenBufferInfo", "Console Error", MB_OK);
  12.         return -1;
  13. }

  14. SetConsoleTextAttribute(hStdout,2);
  15. printf("i feel you!");

  16. SetConsoleTextAttribute(hStdout,2|4|8|16);
  17. printf("you ?");
  18. SetConsoleTextAttribute(hStdout, csbinInfo.wAttribute);
  19. getchar();
  20. return 0;

  21. }
复制代码
Compiler: Default compiler
Executing  g++.exe...
g++.exe "d:\Documents_and_Settings\plp2\desktop\Untitled1.cpp" -o "d:\Documents_and_Settings\plp2\desktop\Untitled1.exe"    -I"C:\Program Files\Dev-Cpp\include\c++\3.3.1"  -I"C:\Program Files\Dev-Cpp\include\c++\3.3.1\mingw32"  -I"C:\Program Files\Dev-Cpp\include\c++\3.3.1\backward"  -I"C:\Program Files\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include"  -I"C:\Program Files\Dev-Cpp\include"   -L"C:\Program Files\Dev-Cpp\lib"
d:/Documents_and_Settings/plp2/desktop/Untitled1.cpp: In function `int
   main(int, char**)':
d:/Documents_and_Settings/plp2/desktop/Untitled1.cpp:11: error: `csbiInfo'
   undeclared (first use this function)
d:/Documents_and_Settings/plp2/desktop/Untitled1.cpp:11: error: (Each
   undeclared identifier is reported only once for each function it appears
   in.)
d:/Documents_and_Settings/plp2/desktop/Untitled1.cpp:13: error: `Null'
   undeclared (first use this function)
d:/Documents_and_Settings/plp2/desktop/Untitled1.cpp:22: error: 'struct
   CONSOLE_SCREEN_BUFFER_INFO' has no member named 'wAttribute'

Execution terminated

论坛徽章:
0
12 [报告]
发表于 2010-06-08 17:20 |只看该作者

  1. #include <stdio.h>
  2. #include <windows.h>

  3. int main()
  4. {
  5.         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
  6.         printf("hello!\n");
  7.         return 0;
  8. }
复制代码
这个可以

论坛徽章:
0
13 [报告]
发表于 2010-06-08 17:56 |只看该作者
好,这个范例简洁!

论坛徽章:
0
14 [报告]
发表于 2010-06-08 18:37 |只看该作者
tc2?

论坛徽章:
0
15 [报告]
发表于 2010-06-08 21:22 |只看该作者
C本身不支持吧,只有系统提供了

论坛徽章:
0
16 [报告]
发表于 2010-06-09 11:15 |只看该作者
C 可以通过调用BIOS中断就可以实现彩色输出了  不过很麻烦  学过汇编的应该知道   比较低层的东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP