📄 scn.htm
字号:
<P> 3. 窗口内文本的输入输出函数<P> 一、窗口内文本的输出函数<BR> int cprintf("<格式化字符串>",<变量表>);<BR> int cputs(char*string);<BR> int putch(intch);<BR> cprintf()函数输出一个格式化的字符串或数值到窗口中。它与printf()函<BR>数的用法完全一样, 区别在于cprintf()函数的输出受窗口限制, 而printf()函<BR>数的输出为整个屏幕。<BR> cputs()函数输出一个字符串到屏幕上, 它与puts()函数用法完全一样, 只<BR>是受窗口大小的限制。<BR> putch()函数输出一个字符到窗口内。<BR> 注意:<BR> (1) 使用以上几种函数, 当输出超出窗口的右边界时会自动转到下一行的<BR>开始处继续输出。当窗口内填满内容仍没有结束输出时, 窗口屏幕将会自动逐行<BR>上卷直到输出结束为止。<P> 二、窗口内文本的输入函数<BR> int getche(void);<BR> 该函数在前面已经讲过, 需要说明的是, getche()函数从键盘上获得一个字<BR>符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一<BR>行的开始位置。<BR> 下面这个程序给例1.中加入了一些文本的输出函数。<BR> 例2.:<BR> #include <stdio.h><BR> #include <conio.h><BR> int main()<BR> {<BR> int i;<BR> char *c[]={"BLACK", "BLUE", "GREEN", "CYAN", "RED",<BR> "MAGENTA", "BROWN", "LIGHTGRAY"};<BR> textbackground(0); /* 设置屏幕背景色 */<BR> clrscr(); /* 清除文本屏幕 */<BR> for(i=1; i<8;i++)<BR> {<BR> window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */<BR> textbackground(i); /* 定义窗口背景色*/<BR> clrscr(); /* 清除窗口 */<BR> }<BR> getch();<BR> return 0;<BR> }<P> 4. 有关屏幕操作的函数<P> void clrscr(void); 清除当前窗口中的文本内容, 并把光标定位在窗口<BR> 的左上角(1, 1)处。<BR> void clreol(void); 清除当前窗口中从光标位置到行尾的所有字符, 光<BR> 标位置不变。<BR> void gotoxy(x, y); 该函数很有用, 它用来定位光标在当前窗口中的位<BR> 置。这里x, y是指光标要定位处的坐标(相对于窗口<BR> 而言), 当x, y超出了窗口的大小时, 该函数就不起<BR> 作用了。<P> int gettext(int xl, int yl, int x2, int y2,void *buffer);<BR> int puttext(int x1, int y1, int x2, int y2,void *buffer);<BR> gettext()函数是将屏幕上指定的矩形区域内文本内容存入buffer指针指向<BR>的一个内存空间。内存的大小用下式计算:<BR> 所用字节大小=行数*列数*2<BR>其中:<BR> 行数=y2-y1+1 列数=x2-x1+1<BR> puttext()函数则是将gettext()函数存入内存buffer中的文字内容拷贝到屏<BR>幕上指定的位置。<BR> int movetext(int x1, int x2, int y2, int x3, inty3);<BR> movetext()函数将屏幕上左上角为(x1, y1), 右下角为(x2,y2)的一矩形窗<BR>口内的文本内容拷贝到左上角为(x3, y3)的新的位置。该函数的坐标也是相对于<BR>整个屏幕而言的。<BR> 注意:<BR> 1. gettext()函数和puttext()函数中的坐标是对整个屏幕而言的, 即是屏<BR>幕的绝对坐标, 而不是相对窗口的坐标。<BR> 2. movetext()函数是拷贝而不是移动窗口区域内容, 即使用该函数后, 原<BR>位置区域的文本内容仍然存在。<BR> <BR> 例3.<BR> include <conio.h><BR> main()<BR> {<BR> int i;<BR> char *f[]={"Load F3", "Pick Alt-F3", "New ",<BR> "Save F2", "Write to ", "Directory",<BR> "Change dir", "Os shee ", "Quit Alt-X"};<BR> char buf[9*14*2];<BR> clrscr();<BR> textcolor(YELLOW);<BR> textbackground(BLUE);<BR> clrscr();<BR> gettext(10,2, 24, 11, buf);<BR> window(10, 2,24, 11);<BR> textbackground(RED);<BR> textcolor(YELLOW);<BR> clrscr();<BR> for(i=0; i<9;i++)<BR> {<BR> gotoxy(1, i++);<BR> cprintf("%s", f[i]);<BR> }<BR> getch();<BR> movetext(10,2, 24, 11, 40, 10);<BR> puttext(10,2, 24, 11, buf);<BR> getch();<BR> }<BR> 下面再介绍一些函数:<BR> void highvideo(void); 设置显示器高亮度显示字符。<BR> void lowvideo(void); 设置显示器低亮度显示字符。<BR> void normvideo(void); 使显示器返回到程序运行前的显示方式。<BR> int wherex(void); 这两个函数返回当前窗口下光标的x, y坐标。<BR> int wherey(void);<BR> <P> <A HREF="index.html">返回目录</A><P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -