关于C语言颜色变化的问题

#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
main()
{
int i,j;
for(i=0;i<2500;i++)
{
j=i%14;
textbackground(j+1);
textcolor(j);
printf("hello world\n");
delay(3000);
clrscr();
}
system("pause");
}
去掉clrscr()之后为什么就什么颜色都没了?

delay(3000);
clrscr();
每隔3秒清一次屏幕。

不清屏幕的话,循环打印的字重叠,各种颜色全加在一起了。追问

但是为什么背景颜色是黑色的?

追答

背景颜色是黑色的 -- TC 的问题。
textbackground(j+1); -- 字的背景色 叠加
textcolor(j); -- 字的前景色 叠加
printf("hello world\n"); -- 字
色16进制:
0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White

追问

TC是啥?turbo c吗?然后问一下为什么打了delay(3000)后一秒也延迟不了?

追答

执行到 delay(3000); 应停3秒。一秒也不延迟 同编译器有关。头文件,链接库是否正确。

MS VC++ 可以用 Sleep(3000) , 头文件 #include
自己用多重循环空语句,也可达到delay 目的。
MS VC++ 清屏幕用 system("cls"); 不支持 clrscr();

clrscr(); 是 TC 的东西。 如果你不知道TC是turbo c,就算了。与屏幕(输出设备)有关的函数,不同的编译器各有一套东西。不要让答题者花时间猜你的编译器种类,再答:如果这种编译器则如何,那种又如何。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-29
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
main()
{
int i,j;
clrscr();
for(i=0;i<25;i++)
{
j=i%14;
textbackground(j+1);
textcolor(j);
cprintf("hello world\t");
if((i+1)%5==0)
printf("\n");
}
system("pause");
}
试试这段追问

问一个另外的问题。为什么我输入了delay(3000)后延迟的时间远远不到3秒?

相似回答