📄 scn.htm
字号:
getch(); <br>
} </p>
<p> 3.
窗口内文本的输入输出函数 </p>
<p>
一、窗口内文本的输出函数 <br>
int cprintf("<格式化字符串>", <变量表>);
<br>
int cputs(char *string); <br>
int putch(int ch); <br>
cprintf()函数输出一个格式化的字符串或数值到窗口中。它与printf()
函 <br>
数的用法完全一样, 区别在于cprintf()函数的输出受窗口限制,
而printf() 函 <br>
数的输出为整个屏幕。 <br>
cputs()函数输出一个字符串到屏幕上,
它与puts()函数用法完全一样, 只 <br>
是受窗口大小的限制。 <br>
putch()函数输出一个字符到窗口内。
<br>
注意: <br>
(1) 使用以上几种函数,
当输出超出窗口的右边界时会自动转到下一行的
<br>
开始处继续输出。当窗口内填满内容仍没有结束输出时,
窗口屏幕将会自动逐行 <br>
上卷直到输出结束为止。 </p>
<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>
<p> 4. 有关屏幕操作的函数 </p>
<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>
<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, int y3); <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>
</td>
</tr>
</table>
</center></div><div align="center"><center>
<table border="0" cellspacing="1" width="640">
<tr>
<td class="p9" height="60"> <script>document.write("<p><a href=\"http://view.gznet.com/cgi-bin/rl_views.cgi?UID=10013421\" target=sxrl>");
document.write("<img src=\"http://refer.gznet.com/cgi-bin/rl_refer2.cgi?UID=10013421&refer="+escape(top.document.referrer)+"\" width=1 height=1 border=0 alt=\" \">");
document.write("</a>");
</script></td>
</tr>
</table>
</center></div>
<p>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -