c语言颜色的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言颜色的问题相关的知识,希望对你有一定的参考价值。
#include "stdio.h"
#include "windows.h"
#include <stdlib.h>
int main()
system("color 1f");
int a,i,j;
char str[]="小明生日快乐";
char str2[]="祝你越长越漂亮等等";
printf(" ");
for(i=0;i<12;i++)
if(i==4)
Sleep(300);
printf(",");
printf("%c",str[i]);
Sleep(300);
if(i==11)
Sleep(300);
printf("!");
printf("\n");
printf("\n\n\n");
printf(" ");
for(j=0;j<18;j++)
if(j==14)
Sleep(300);
printf(",");
Sleep(300);
printf("%c",str2[j]);
if(j==17)
Sleep(300);
printf(".....");
printf("\n");
return 0;
增加头文件#include <stdlib.h>,想要用颜色,为什么会出错呢?
:\新建文件夹\MyProjects\aaa\aaaaa.c(7) : error C2143: syntax error : missing ';' before 'type'
D:\新建文件夹\MyProjects\aaa\aaaaa.c(38) : error C2065: 'str2' : undeclared identifier
D:\新建文件夹\MyProjects\aaa\aaaaa.c(38) : error C2109: subscript requires array or pointer type
等等。。。。。。。。。。。。
我的编译器是Visual C++
其中不能使用SetColor(40,30);这样的参数,是错误的.
SetConsoleTextAttribute函数的原型为BOOL SetConsoleTextAttribute(HANDLE
hConsoleOutput, WORD wAttributes);
wAttributes是用来设置颜色的参数:
FOREGROUND_BLUE
字体颜色:蓝
FOREGROUND_GREEN
字体颜色:绿
FOREGROUND_RED
字体颜色:红
FOREGROUND_INTENSITY
前景色高亮显显
BACKGROUND_BLUE
背景颜色:蓝
BACKGROUND_GREEN
背景颜色:绿
BACKGROUND_RED
背景颜色:红
BACKGROUND_INTENSITY
背景色高亮显示
FOREGROUND_BLUE,FOREGROUND_GREEN,FOREGROUND_RED,FOREGROUND_INTENSITY,BACKGROUND_BLUE,BACKGROUND_GREEN,BACKGROUND_RED,BACKGROUND_INTENSITY对应的值分别是1
2 4 8 16 32 64 128。
也就是说SetConsoleTextAttribute函数是靠一个字节的低四来控制前景色,高四位来控制背景色。
具体传入的参数你看下百科:http://baike.baidu.cn/view/4237672.htm追问
我只是想知道,为什么我用这个头文件不行?
参考技术B 不是头文件不行,而是你的程序是.C程序。纯C代码,声明必须在其它语句之前,将system那一行,向下挪三行,放在三行声明变量之下即可。本回答被提问者采纳
关于C语言程序代码加颜色的问题!
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
#include "stdio.h" /*I/O函数*/
#include "bios.h" /*ROM基本输入输出函数*/
#include "dos.h" /*dos接口函数*/
#include "alloc.h" /*动态地址分配函数*/
main()
char *f[]= /*定义菜单字符串数组*/
"*************MENU***********", /*菜单的标题行*/
"0. shuru",
"1. xianshi",
"2. xiugai \n",
"3. chazhao",
"4. shanchu",
"5. zairu",
"6. quit",
; /*退出*/
char s[80];
int i;
int key=0; /*记录所压键值*/
int c=0;
clrscr(); /*清屏*/
textcolor(YELLOW); /*设置文本颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为兰色*/
gotoxy(10,2);
putch(0xda); /*输出左上角边框┏*/
for(i=1;i<44;i++)
putch(0xc4); /*输出上边框水平线*/
putch(0xbf); /*输出右上角边框 ┓*/
for(i=3;i<22;i++)/*输出左右两边的垂直线*/
gotoxy(10,i);putch(0xb3);
gotoxy(54,i);putch(0xb3);
gotoxy(10,22);putch(0xc0); /*输出左上角边框┗*/
for(i=1;i<44;i++)
putch(0xc4); /*输出下边框水平线*/
putch(0xd9); /*输出右下角边框┛*/
window(11,3,53,21);
clrscr(); /*清屏*/
for(i=0;i<8;i++)
gotoxy(10,i+1);
cprintf("%s",f[i]); /*输出菜单项数组*/
i=1;
gotoxy(10,2); /*设置默认选项在第一项*/
textbackground(LIGHTGREEN);/*设置背景颜色为浅绿*/
cprintf("%s",f[1]); /*输出菜单项,表示选中*/
gotoxy(10,2); /*移动光标到菜单的第一项*/
while(key!=13) /*所压键不是回车键时*/
while(bioskey(1)==0); /*查询是否压下了一个键*/
key=bioskey(0); /*返回下一个在键盘压下的键*/
key=key&0xff?key&0xff:key>>8; /*对所压的键进行判断*/
gotoxy(10,i+1);
textbackground(BLUE);/*设置背景颜色为蓝色*/
cprintf("%s",f[i]); /*输出菜单项*/
if(key==72) i=i==1?7:i-1; /*如压向上光标键↑,i减1,如已到第一行再上移,则到最后一行*/
if(key==80)i=i==7?1:i+1; /*如压向下光标键↓,i加1,如已到最后一行再下移,则到第一行*/
gotoxy(10,i+1); /*光标移动i的下一项*/
textbackground(LIGHTGREEN); /*将背景颜色设为浅绿*/
cprintf("%s",f[i]); /*输出菜单项*/
c=i-1; /*给代表菜单选项的整数赋值*/
textbackground(BLACK); /*设置背景颜色为黑色*/
window(1,1,80,25); /*恢复原窗口大小*/
clrscr();
return c; /*返回代表菜单选项的整数值*/
这是一行菜单的代码!谁能帮我把它的黑色背景改成别的颜色!那个蓝框和黄色的字不改!就把后面的黑色背景改了!!哪为大哥会弄帮弄一下!小弟感激不尽!小弟用WIN-TC当场试验!成功就给分!!谢谢了!!
#include "stdio.h" /*I/O函数*/
#include "stdlib.h" /*其它说明*/
#include "string.h" /*字符串函数*/
#include "conio.h" /*屏幕操作函数*/
#include "mem.h" /*内存操作函数*/
#include "ctype.h" /*字符操作函数*/
#include "alloc.h" /*动态地址分配函数*/
#include "stdio.h" /*I/O函数*/
#include "bios.h" /*ROM基本输入输出函数*/
#include "dos.h" /*dos接口函数*/
#include "alloc.h" /*动态地址分配函数*/
main()
char *f[]= /*定义菜单字符串数组*/
"*************MENU***********", /*菜单的标题行*/
"0. shuru",
"1. xianshi",
"2. xiugai \n",
"3. chazhao",
"4. shanchu",
"5. zairu",
"6. quit",
; /*退出*/
char s[80];
int i;
int key=0; /*记录所压键值*/
int c=0;
clrscr(); /*清屏*/
textcolor(YELLOW); /*设置文本颜色为黄色*/
textbackground(BLUE); /*设置背景颜色为兰色*/
gotoxy(10,2);
putch(0xda); /*输出左上角边框┏*/
for(i=1;i<44;i++)
putch(0xc4); /*输出上边框水平线*/
putch(0xbf); /*输出右上角边框 ┓*/
for(i=3;i<22;i++)/*输出左右两边的垂直线*/
gotoxy(10,i);putch(0xb3);
gotoxy(54,i);putch(0xb3);
gotoxy(10,22);putch(0xc0); /*输出左上角边框┗*/
for(i=1;i<44;i++)
putch(0xc4); /*输出下边框水平线*/
putch(0xd9); /*输出右下角边框┛*/
window(11,3,53,21);
clrscr(); /*清屏*/
textbackground(LIGHTGREEN);
for(i=0;i<8;i++)
gotoxy(10,i+1);
cprintf("%s",f[i]); /*输出菜单项数组*/
i=1;
gotoxy(10,2); /*设置默认选项在第一项*/
textbackground(LIGHTGREEN);/*设置背景颜色为浅绿*/
cprintf("%s",f[1]); /*输出菜单项,表示选中*/
gotoxy(10,2); /*移动光标到菜单的第一项*/
while(key!=13) /*所压键不是回车键时*/
while(bioskey(1)==0); /*查询是否压下了一个键*/
key=bioskey(0); /*返回下一个在键盘压下的键*/
key=key&0xff?key&0xff:key>>8; /*对所压的键进行判断*/
gotoxy(10,i+1);
textbackground(BLUE);/*设置背景颜色为蓝色*/
cprintf("%s",f[i]); /*输出菜单项*/
if(key==72) i=i==1?7:i-1; /*如压向上光标键↑,i减1,如已到第一行再上移,则到最后一行*/
if(key==80)i=i==7?1:i+1; /*如压向下光标键↓,i加1,如已到最后一行再下移,则到第一行*/
gotoxy(10,i+1); /*光标移动i的下一项*/
textbackground(LIGHTGREEN); /*将背景颜色设为浅绿*/
cprintf("%s",f[i]); /*输出菜单项*/
c=i-1; /*给代表菜单选项的整数赋值*/
textbackground(LIGHTGREEN); /*设置背景颜色为黑色*/
window(1,1,80,25); /*恢复原窗口大小*/
clrscr();
return c; /*返回代表菜单选项的整数值*/
本回答被提问者采纳
以上是关于c语言颜色的问题的主要内容,如果未能解决你的问题,请参考以下文章