C语言字符屏幕函数

Turbo C2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、窗口文本的清除和输入输出等函数。

1.文本窗口的定义

Turbo C2.0默认定义的文本窗口为整个屏幕, 共有80列(或40列)25行的文本单元, 每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字符的颜色和强度。

Turbo C2.0可以定义屏幕上的一个矩形域作为窗口, 使用window()函数定义。

窗口定义之后, 用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超出窗口的边界。

window()函数的调用格式为:

void window(int left, int top, int right, int bottom);

该函数的原型在conio.h 中 (关于文本窗口的所有函数其头文件均为conio.h,后面不再说明)。 函数中形式参数(int left, int top)是窗口左上角的坐标,(int right, int bottom)是窗口的右下角坐标, 其中(left, top)和(right,bottom) 是相对于整个屏幕而言的。 Turbo C 2.0规定整个屏幕的左上角坐标为(1, 1), 右下角坐标为(80, 25)。并规定沿水平方向为 X轴, 方向朝右; 沿垂直方向为 Y轴, 方向朝下。若window()函数中的坐标超过了屏幕坐标的界限, 则窗口的定义就失去了意义, 也就是说定义将不起作用, 但程序编译链接时并不出错。

另外, 一个屏幕可以定义多个窗口, 但现行窗口只能有一个(因为DOS为单任务操作系统), 当需要用另一窗口时, 可将定义该窗口的window() 函数再调用一次, 此时该窗口便成为现行窗口了。

如要定义一个窗口左上角在屏幕(20, 5)处, 大小为30列15行的窗口可写成:

window(20, 5, 50, 25);

2. 文本窗口颜色的设置

文本窗口颜色的设置包括背景颜色的设置和字符颜色的设置, 使用的函数及其调用格式为:

设置背景颜色: void textbackground(int color);

设置字符颜色: void textcolor(int color);

有关颜色的定义见表1。

表1. 有关颜色的定义
━━━━━━━━━━━━━━━━━━━━━━━━━━━
 符号常数     数值   含义     字符或背景
───────────────────────────
 BLACK       0     黑     两者均可
 BLUE       1     兰     两者均可
 GREEN       2     绿     两者均可
 CYAN       3     青     两者均可
 RED        4     红     两者均可
 MAGENTA      5    洋红     两者均可
 BROWN       6     棕     两者均可
 LIGHTGRAY     7    淡灰     两者均可
 DARKGRAY     8    深灰     只用于字符
 LIGHTBLUE     9    淡兰     只用于字符
 LIGHTGREEN    10    淡绿     只用于字符
 LIGHTCYAN     11    淡青     只用于字符
 LIGHTRED     12    淡红     只用于字符
 LIGHTMAGENTA   13    淡洋红    只用于字符
 YELLOW      14    黄      只用于字符
 WHITE       15    白      只用于字符
 BLINK       128   闪烁     只用于字符
━━━━━━━━━━━━━━━━━━━━━━━━━━━

时间: 2024-10-04 18:36:29

C语言字符屏幕函数的相关文章

屏幕刷新-有关于c语言刷新屏幕的

问题描述 有关于c语言刷新屏幕的 写一个游戏,在DOS界面上显示一个地图,老鼠从左上角走到右下角,倒计时25秒以内走到成功..可是老鼠每走一步要刷新一下更新地图,时间每过一秒也要刷新一下减去一秒,两个要同时进行,互相影响,屏幕不停在闪,而且计时的刷新也影响老鼠走路,上下左右键按了以后过一会才有反应,,请问应该怎么处理这个情况... 解决方案 不需要,直接把光标定位在需要擦除的地方输出空格就可以了. 解决方案二: 忘了给悬赏,对不住啊,有点急 解决方案三: C语言字符屏幕函数 解决方案四: 使用c

Strsafe.h:更安全的C语言字符串处理函数

原文出处:Strsafe.h: Safer String Handling in C:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/strsafe.asp 在微软公司举行的Microsoft Windows Security Push 活动期间,一批测试者.程序管理经理和普通程序员共同决定要为 C 语言量身定制一套具有较高安全性的字符串处理函数,并且希望这些函数能被 Windows 程

c语言函数-c语言中的函数使用问题,

问题描述 c语言中的函数使用问题, printf(""<%d> ""++count)中<%d>是什么意思?望各位大神帮帮我 解决方案 C语言下的函数可变参数的使用c语言中system()函数的使用C语言函数传值问题 解决方案二: 打印count的值,以十进制输出(%d),且count要先自己加一,才会打印. 解决方案三: 百度一下你就知道~~ 解决方案四: 用来输出十进制的整数 解决方案五: 你可以当一个符号:这个符号代表一个10进制的数字,

c语言-求问一个C语言字符指针的问题

问题描述 求问一个C语言字符指针的问题 #include void Initialize (char * a, char * b) { a[0] = 'T'; a[1] = 'h'; a[2] = 'i'; a[3] = 's'; a[4] = ' '; a[5] = 'i'; a[6] = 's'; a[7] = ' '; a[8] = 'A'; a[9] = ''; b = a; b[8] = 'B'; } #define ARRAY_SIZE 10 char a[ARRAY_SIZE];

c-C语言中用fgets()函数,输入过多会导致程序自动关闭!!

问题描述 C语言中用fgets()函数,输入过多会导致程序自动关闭!! 就是这个代码,只要输入的字符数量超过9,程序就自动关了. #include int main(void) { char name[10]; char name2[100]; char* c; c = fgets(name,9,stdin); // printf("%s%s",name,c); getchar(); getchar(); getchar(); return 0; } 解决方案 不是越界...fgets

malloc-C语言字符指针问题求解答

问题描述 C语言字符指针问题求解答 main(){ char * a; a=(char * )malloc(40); scanf(""%s""* a );}上面代码中的scanf(""%s""* a);这行为什么是合法的?请赐教!不好意思第一次代码输错了-_- 解决方案 创建了一个40个字符长度的缓冲区,然后输入字符到这个缓冲区中.你测试下就知道了. 解决方案二: a=(char)malloc(40); 看不懂这要干嘛,怎么不

c语言-C语言字符输出问题123123

问题描述 C语言字符输出问题123123 char a[10]; int i; for (i = 0; i < 10; i++) scanf_s("%c",&a[i]); printf("%s",a);//我打10个字符以上后就会输出一些随机的数字,为什么啊? 解决方案 char a[10] 在char数组的初始化后 每个元素默认是''(结束标识),当你输入10或者超出10个以后''都被其他字符替代了,而你用printf("%s",

c语言字符数组中回车符问题?

问题描述 c语言字符数组中回车符问题? //getline函数:将一行读入到S中并返回其长度 int getline(char s[] ,int length) { int c,i; for(i=0; i<length-1 && (c=getchar())!=EOF && c!='n';++i) s[i]=c; if(c == 'n'){ s[i] = c; ++i; } s[i]=''; return i; } 我想问一下,这里的if(c =='n')有什么用?我觉

与ASCII码相关的C语言字符串操作函数_C 语言

C语言toascii()函数:将字符转换成对应的ASCII码头文件: #include <ctype.h> 定义函数: int toascii(int c); 函数说明:toascii()会将参数c 转换成7 位的unsigned char 值,第八位则会被清除,此字符即会被转成ASCII码字符. 返回值:将转换成功的ASCII 码字符值返回. 范例:将int 型a 转换成ASSII 码字符. #include <stdlib.h> main(){ int a = 217; cha