⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scn.htm

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -