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

📄 042.htm

📁 一个好的讲DSP中C语言编程的电子书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
}
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch();
<BR>&nbsp;&nbsp;&nbsp;&nbsp; }
<BR>
<P>&nbsp;&nbsp;&nbsp; 3. 窗口内文本的输入输出函数
<BR>
<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(int
ch);
<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>上卷直到输出结束为止。
<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; }
<BR>
<P>&nbsp;&nbsp;&nbsp; 4. 有关屏幕操作的函数
<BR>
<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;
作用了。
<BR>
<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, int
y3);
<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;
<BR>
<hr color="#EE9B73" size="1" width="94%">

</TD>
<TD CLASS="tt3" VALIGN="bottom" width="8%"  bgcolor="#e0e0e0"><strong><A HREF="index.html">后一页</A><BR>
<A HREF="041.htm">前一页</A><BR>

<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
</TR>
</table>
</BODY></HTML>

⌨️ 快捷键说明

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