论文部分内容阅读
摘要:通过介绍C语言程序中的窗口函数、彩色输出函数、背景前景设置函数、清屏函数、屏幕定位函数等基本图形函数的定义及用法,并采用程序设计实例进行分析,解决如何使用C语言输出彩色图形的问题,对于C语言的深入学习具有一定的借鉴意义。
关键词:C语言程序设计;屏幕定位;彩色输出
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)27-0073-02
C语言程序设计包含很丰富的知识,主要有顺序结构程序设计,选择结构、循环结构、以及数组、指针等内容,我们一般所接触到的程序的输出结果都是黑色屏幕上显示白色字符,也就是黑白效果,其实,C语言中也可以彩色输出。
使用C语言中的函数输出彩色图形,需要学习掌握窗口函数、彩色输出函数、背景前景设置函数、清屏函数、屏幕定位函数等基本图形函数,缺少以上任意一种函数,都有可能无法得到正确的输出结果,从而导致在反复调试过程中增加了不必要的工作量,降低了编译程序的可读性和效率。
1 文本窗口的定义
C语言默认的文本窗口为整个屏幕,共有80列25行的文本单元,C语言允许使用window( )函数定义屏幕上的一个矩形域作为窗口。
Window( )函数的调用格式为:Window(int left,int top, int right, int bottom);使用的头文件为:“conio.h”,在使用该函数时加上文件包含命令:# include (conio.h)。C语言规定整个屏幕的左上角坐标为(1,1),右下角坐标为(80,25),并规定沿水平方向为X轴,方向向右,沿垂直方向为Y轴,方向向下。例:要定义一个窗口左上角在屏幕(20,5)处,大小为5列、5行的窗口可写为:window (20,5,25,10);
2 文本窗口内的输入输出函数
2.1 文本窗口的输出
文本窗口的输出函数主要有三个,cprintf( ),格式为:cprintf(格式控制字符串,输出表列),函数的功能是,输出一个字符串或数值到窗口中,它与printf( )函数的用法完全一样,所不同的就是cprintf( )函数的输出受到窗口的限制,而printf( )函数的输出窗口为整个屏幕。cputs( ),格式为:cputs( s );函数的功能是,输出一个字符串到窗口上。putch( ),格式为:putch( c );函数的功能是,输出一个字符到窗口内。
2.2 文本窗口的输入
窗口内文本的输入函数只有一个,其调用格式为:getchar( );使用该函数时要用文件包含命令:# include(stdio.h)
3 文本窗口的颜色设置
文本窗口的颜色设置主要包括背景色设置和字符颜色设置。
3.1 背景颜色的设置函数
设置背景颜色的函数名为:textbackground(),具体的使用格式为:Textbackground(int color);其中参数color对应了不同的颜色,可根据其所对应的颜色值设置背景颜色。
3.2 字符颜色的设置函数
函数名:textcolor(),格式为:Textcolor(int color);功能:根据参数color所对应的颜色值设置字符颜色。例如:编写程序在青色背景下用红、黄、绿三种颜色输出“I love C language!”,程序如下:
#include
main( )
{
clrscr();
textbackground(CYAN);
textcolor(RED);
cprintf(“I love C language!\n”);
textcolor(YELLOW);
cprintf(“I love C language!\n”);
textcolor(GREEN);
cprintf(“I love C language!\n”);
}
使用以上两个函数的几点说明,(1)包含这两个函数的头文件均为“conio.h”。(2)这两个函数均为有参函数,参数为颜色值。例如,要设置青色的背景可以通过以下两种方法:
textbackground(3);或textbackground(CYAN);
3.3 同時设置文本的字符颜色和背景颜色的函数
函数名:textattr(),调用的一般格式:textattr(int attr);功能:根据参数attr所对应的值同时设置文本的字符颜色和背景颜色。其中参数attr的值表示颜色形式编码的信息,编码由八位(7,6,5,4,3,2,1,0位)组成,字节的低四位(3,2,1,0)用于设置字符的颜色,字节的6,5,4三位用于设置背景颜色,最高位(7位)设置为是否闪烁。例如,要设置一个蓝底黄字,可以设置为textatter(YELLOW (BLUE<<4));若设置一个闪烁的蓝底黄字,设置方法为 textatter (128 YELLOW (BLUE<<4)),在使用textatter函数时,背景颜色需要使用位运算符,将左移运算符向左边移动4位,这样才能保证背景颜色移动至正确的位置上。在主函数中调用textatter()函数时,需要使用头文件“conio.h”。
4 有关屏幕定位的操作
在使用C语言进行彩色图形输出过程中,如果想达到预期的效果,其中必要的一步操作就是需要进行屏幕定位,否则会导致字符偏移,从而无法得到正确的运行结果,因此,屏幕定位函数对于彩色图形输出来讲是不可或缺的。同时,在程序编写和调试过程中,由于无法保证程序编译一次性输出正确彩色图形,需要进行反复调试,此时清屏函数就显得尤为重要,可以解决输出彩色图形因多次运行后造成相互叠加的问题。 4.1 清除屏幕内容的函数
清除屏幕内容的函数主要有两个,一个是clrscr(),该函数的主要功能是清除当前窗口中的所有文本内容,并使光标定位在左上角(1,1)处。另一个是clreol(),该函数的主要功能是清除当前窗口中从光标起始处到行末的所有字符,而使光标的位置不发生变化。
一般我们在编写程序时,大多都会使用clrscr()函数,如果不使用这个函数,在程序多次运行后,程序的运行结果也就是输出的彩色图形就会叠加在同一个位置,导致图形看上去很混乱,使用清屏函数后可以在每次调試运行后都清晰地看到图形。
4.2 光标定位函数
光标定位函数是gotoxy(x,y),该函数的主要功能是定位当前光标所在的位置,其中的x、y是指光标相对于窗口而言定位处的坐标。也就是说当x、y的设置一旦超出窗口的大小,此函数将无法运行。例如,编程输出一个用*组成的四行的等腰三角形,要求每行的*的个数分别是1,3,5,7,程序如下:
#include
main( )
{
textcolor(RED);
cprintf(“%s\n”, “*”);
cprintf(“%s\n”, “***”);
cprintf(“%s\n”, “*****”);
cprintf(“%s\n”,”*******”);
}
运行结果将是一个直角三角形,必须给每行都使用定位函数定位才能得到正确的图形,若想得到题目要求的正确结果,程序必须使用定位函数,程序如下:
#include
main( )
{
textcolor(RED);
gotoxy(1,1);
cprintf(“%s\n”, “*”);
gotoxy(1,2);
cprintf(“%s\n”, “***”);
gotoxy(1,3);
cprintf(“%s\n”, “*****”);
gotoxy(1,4);
cprintf(“%s\n”,”*******”);
}
将图形函数综合使用起来,字符模式下窗口内容的有关操作示例(窗口定义、颜色设置、输入输出、屏幕定位)如下:
#include
#include
main( )
{ int x=3,y=2;
char ch1=‘A’,ch2;
window(15,5,50,25);
textbackground(3);
textcolor(YELLOW);
clrscr( );
cprintf(“x=%d,y=%d,ch1=%c\n”,x,y,ch1);
gotoxy(16,6);
ch2=getch();
putch(ch2);}
5 基本图形函数
在使用C语言编写输出图形的程序中,除了要使用彩色输出函数cprintf(),设置背景颜色函数textbackground(),设置字符颜色函数textcolor(),屏幕定位函数gotoxy(),清屏函数clrscr()等函数外,基本图形函数很有很多。(1)putpixel,功能是用指定的像素画一个按color所指定的颜色的点,函数的格式是putpixel(int x,int y,int color);例如在坐标(4,4)处画一个红点,应写为:putpixel(4,4,RED)。(2)line,函数的功能是画一条从某个点到另一个点的直线,函数的格式是line(int x1,int y1,int x2,int y2),例如画一条从(4,5)到(10,8)的直线,应写为line(4,5,8,10)。(3)circle,函数的功能是以某个点为圆心,以某个数为半径画一个圆,函数的格式是circle(int x,int y,int radius),例如以(4,4)为圆心,以5为半径画一个圆,应写为circle(4,4,5)。(4)arc,函数的功能是以某个点为圆心,以某个数为半径,用度表示画一段圆弧线,函数的格式是arc(int x,int y,int stangle,int endangle,int radius)。(5)rectangle,函数的功能是以某个点为左上角,某个点为右下角,画一个矩形,函数的格式为rectangle(int x1,int y1,int x2,int y2)。
基本图形函数还有很多,比如求当前点的颜色值函数getpixel,求x轴的最大值函数getmaxx,画椭圆的函数ellipse,画n边形的函数drawpoly等,诸如此类的函数还有很多,都可以用来在C语言程序设计中编写输出图形。
6 结束语
C语言是由函数组成的,C语言屏幕定位及彩色输出中的函数也非常的丰富,窗口函数,彩色输出函数,清屏函数,背景色前景色设置函数,定位函数等,只要掌握好各函数的使用方法,掌握好函数使用时所使用到的头文件,按照C语言程序设计中的顺序结构的编程方法来编写输出彩色图形就会很容易。
参考文献:
[1] 吴琼,蔡仲儒.C语言图形函数及应用[J].考试周刊,2007(40):114-115.
[2] 林君. C语言图形程序设计技巧与实例[M]. 北京: 海洋出版社, 2007(7).
[3] 邱力. C语言程序设计[M]. 北京: 清华大学出版社, 2004(7).
[通联编辑:谢媛媛]
关键词:C语言程序设计;屏幕定位;彩色输出
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)27-0073-02
C语言程序设计包含很丰富的知识,主要有顺序结构程序设计,选择结构、循环结构、以及数组、指针等内容,我们一般所接触到的程序的输出结果都是黑色屏幕上显示白色字符,也就是黑白效果,其实,C语言中也可以彩色输出。
使用C语言中的函数输出彩色图形,需要学习掌握窗口函数、彩色输出函数、背景前景设置函数、清屏函数、屏幕定位函数等基本图形函数,缺少以上任意一种函数,都有可能无法得到正确的输出结果,从而导致在反复调试过程中增加了不必要的工作量,降低了编译程序的可读性和效率。
1 文本窗口的定义
C语言默认的文本窗口为整个屏幕,共有80列25行的文本单元,C语言允许使用window( )函数定义屏幕上的一个矩形域作为窗口。
Window( )函数的调用格式为:Window(int left,int top, int right, int bottom);使用的头文件为:“conio.h”,在使用该函数时加上文件包含命令:# include (conio.h)。C语言规定整个屏幕的左上角坐标为(1,1),右下角坐标为(80,25),并规定沿水平方向为X轴,方向向右,沿垂直方向为Y轴,方向向下。例:要定义一个窗口左上角在屏幕(20,5)处,大小为5列、5行的窗口可写为:window (20,5,25,10);
2 文本窗口内的输入输出函数
2.1 文本窗口的输出
文本窗口的输出函数主要有三个,cprintf( ),格式为:cprintf(格式控制字符串,输出表列),函数的功能是,输出一个字符串或数值到窗口中,它与printf( )函数的用法完全一样,所不同的就是cprintf( )函数的输出受到窗口的限制,而printf( )函数的输出窗口为整个屏幕。cputs( ),格式为:cputs( s );函数的功能是,输出一个字符串到窗口上。putch( ),格式为:putch( c );函数的功能是,输出一个字符到窗口内。
2.2 文本窗口的输入
窗口内文本的输入函数只有一个,其调用格式为:getchar( );使用该函数时要用文件包含命令:# include(stdio.h)
3 文本窗口的颜色设置
文本窗口的颜色设置主要包括背景色设置和字符颜色设置。
3.1 背景颜色的设置函数
设置背景颜色的函数名为:textbackground(),具体的使用格式为:Textbackground(int color);其中参数color对应了不同的颜色,可根据其所对应的颜色值设置背景颜色。
3.2 字符颜色的设置函数
函数名:textcolor(),格式为:Textcolor(int color);功能:根据参数color所对应的颜色值设置字符颜色。例如:编写程序在青色背景下用红、黄、绿三种颜色输出“I love C language!”,程序如下:
#include
main( )
{
clrscr();
textbackground(CYAN);
textcolor(RED);
cprintf(“I love C language!\n”);
textcolor(YELLOW);
cprintf(“I love C language!\n”);
textcolor(GREEN);
cprintf(“I love C language!\n”);
}
使用以上两个函数的几点说明,(1)包含这两个函数的头文件均为“conio.h”。(2)这两个函数均为有参函数,参数为颜色值。例如,要设置青色的背景可以通过以下两种方法:
textbackground(3);或textbackground(CYAN);
3.3 同時设置文本的字符颜色和背景颜色的函数
函数名:textattr(),调用的一般格式:textattr(int attr);功能:根据参数attr所对应的值同时设置文本的字符颜色和背景颜色。其中参数attr的值表示颜色形式编码的信息,编码由八位(7,6,5,4,3,2,1,0位)组成,字节的低四位(3,2,1,0)用于设置字符的颜色,字节的6,5,4三位用于设置背景颜色,最高位(7位)设置为是否闪烁。例如,要设置一个蓝底黄字,可以设置为textatter(YELLOW (BLUE<<4));若设置一个闪烁的蓝底黄字,设置方法为 textatter (128 YELLOW (BLUE<<4)),在使用textatter函数时,背景颜色需要使用位运算符,将左移运算符向左边移动4位,这样才能保证背景颜色移动至正确的位置上。在主函数中调用textatter()函数时,需要使用头文件“conio.h”。
4 有关屏幕定位的操作
在使用C语言进行彩色图形输出过程中,如果想达到预期的效果,其中必要的一步操作就是需要进行屏幕定位,否则会导致字符偏移,从而无法得到正确的运行结果,因此,屏幕定位函数对于彩色图形输出来讲是不可或缺的。同时,在程序编写和调试过程中,由于无法保证程序编译一次性输出正确彩色图形,需要进行反复调试,此时清屏函数就显得尤为重要,可以解决输出彩色图形因多次运行后造成相互叠加的问题。 4.1 清除屏幕内容的函数
清除屏幕内容的函数主要有两个,一个是clrscr(),该函数的主要功能是清除当前窗口中的所有文本内容,并使光标定位在左上角(1,1)处。另一个是clreol(),该函数的主要功能是清除当前窗口中从光标起始处到行末的所有字符,而使光标的位置不发生变化。
一般我们在编写程序时,大多都会使用clrscr()函数,如果不使用这个函数,在程序多次运行后,程序的运行结果也就是输出的彩色图形就会叠加在同一个位置,导致图形看上去很混乱,使用清屏函数后可以在每次调試运行后都清晰地看到图形。
4.2 光标定位函数
光标定位函数是gotoxy(x,y),该函数的主要功能是定位当前光标所在的位置,其中的x、y是指光标相对于窗口而言定位处的坐标。也就是说当x、y的设置一旦超出窗口的大小,此函数将无法运行。例如,编程输出一个用*组成的四行的等腰三角形,要求每行的*的个数分别是1,3,5,7,程序如下:
#include
main( )
{
textcolor(RED);
cprintf(“%s\n”, “*”);
cprintf(“%s\n”, “***”);
cprintf(“%s\n”, “*****”);
cprintf(“%s\n”,”*******”);
}
运行结果将是一个直角三角形,必须给每行都使用定位函数定位才能得到正确的图形,若想得到题目要求的正确结果,程序必须使用定位函数,程序如下:
#include
main( )
{
textcolor(RED);
gotoxy(1,1);
cprintf(“%s\n”, “*”);
gotoxy(1,2);
cprintf(“%s\n”, “***”);
gotoxy(1,3);
cprintf(“%s\n”, “*****”);
gotoxy(1,4);
cprintf(“%s\n”,”*******”);
}
将图形函数综合使用起来,字符模式下窗口内容的有关操作示例(窗口定义、颜色设置、输入输出、屏幕定位)如下:
#include
#include
main( )
{ int x=3,y=2;
char ch1=‘A’,ch2;
window(15,5,50,25);
textbackground(3);
textcolor(YELLOW);
clrscr( );
cprintf(“x=%d,y=%d,ch1=%c\n”,x,y,ch1);
gotoxy(16,6);
ch2=getch();
putch(ch2);}
5 基本图形函数
在使用C语言编写输出图形的程序中,除了要使用彩色输出函数cprintf(),设置背景颜色函数textbackground(),设置字符颜色函数textcolor(),屏幕定位函数gotoxy(),清屏函数clrscr()等函数外,基本图形函数很有很多。(1)putpixel,功能是用指定的像素画一个按color所指定的颜色的点,函数的格式是putpixel(int x,int y,int color);例如在坐标(4,4)处画一个红点,应写为:putpixel(4,4,RED)。(2)line,函数的功能是画一条从某个点到另一个点的直线,函数的格式是line(int x1,int y1,int x2,int y2),例如画一条从(4,5)到(10,8)的直线,应写为line(4,5,8,10)。(3)circle,函数的功能是以某个点为圆心,以某个数为半径画一个圆,函数的格式是circle(int x,int y,int radius),例如以(4,4)为圆心,以5为半径画一个圆,应写为circle(4,4,5)。(4)arc,函数的功能是以某个点为圆心,以某个数为半径,用度表示画一段圆弧线,函数的格式是arc(int x,int y,int stangle,int endangle,int radius)。(5)rectangle,函数的功能是以某个点为左上角,某个点为右下角,画一个矩形,函数的格式为rectangle(int x1,int y1,int x2,int y2)。
基本图形函数还有很多,比如求当前点的颜色值函数getpixel,求x轴的最大值函数getmaxx,画椭圆的函数ellipse,画n边形的函数drawpoly等,诸如此类的函数还有很多,都可以用来在C语言程序设计中编写输出图形。
6 结束语
C语言是由函数组成的,C语言屏幕定位及彩色输出中的函数也非常的丰富,窗口函数,彩色输出函数,清屏函数,背景色前景色设置函数,定位函数等,只要掌握好各函数的使用方法,掌握好函数使用时所使用到的头文件,按照C语言程序设计中的顺序结构的编程方法来编写输出彩色图形就会很容易。
参考文献:
[1] 吴琼,蔡仲儒.C语言图形函数及应用[J].考试周刊,2007(40):114-115.
[2] 林君. C语言图形程序设计技巧与实例[M]. 北京: 海洋出版社, 2007(7).
[3] 邱力. C语言程序设计[M]. 北京: 清华大学出版社, 2004(7).
[通联编辑:谢媛媛]