50、C语言图形函数-窗口内文本的输入输出函数

一、窗口内文本的输出函数 

         int cprintf("<格式化字符串>", <变量表>); 

         int cputs(char *string); 

         int putch(int ch); 

   cprintf()函数输出一个格式化的字符串或数值到窗口中。它与printf() 函 数的用法完全一样, 区别在于cprintf()函数的输出受窗口限制, 而printf() 函 数的输出为整个屏幕。 

   cputs()函数输出一个字符串到屏幕上,它与puts()函数用法完全一样,  只是受窗口大小的限制。 

   putch()函数输出一个字符到窗口内。 

    注意: 

    (1) 使用以上几种函数,  当输出超出窗口的右边界时会自动转到下一行的开始处继续输出。当窗口内填满内容仍没有结束输出时, 窗口屏幕将会自动逐行上卷直到输出结束为止。 

二、窗口内文本的输入函数 

       int getche(void); 

    该函数在前面已经讲过, 需要说明的是, getche()函数从键盘上获得一个字符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一行的开始位置。 

     例1: 

     #include <stdio.h> 

     #include <conio.h> 

     int main() 

    { 

         int i; 

         char *c[]={"BLACK",  "BLUE",  "GREEN",  "CYAN",  "RED", 

                     "MAGENTA","BROWN", "LIGHTGRAY"}; 

         textbackground(0);            /* 设置屏幕背景色 */ 

         clrscr();                     /* 清除文本屏幕 */ 

         for(i=1; i<8; i++) 

           { 

               window(10+i*5, 5+i, 30+i*5,15+i); /* 定义文本窗口 */ 

               textbackground(i);        /* 定义窗口背景色 */ 

               clrscr();                 /* 清除窗口 */ 

            } 

         getch(); 

         return 0; 

三、有关屏幕操作的函数 

   void clrscr(void);   清除当前窗口中的文本内容,  并把光标定位在窗口的左上角(1, 1)处。 

   void clreol(void);   清除当前窗口中从光标位置到行尾的所有字符,  光标位置不变。 

   void gotoxy(x, y);   该函数很有用,  它用来定位光标在当前窗口中的位置。这里x, y是指光标要定位处的坐标(相对于窗口而言), 当x, y超出了窗口的大小时, 该函数就不起作用了。 

    int gettext(int xl, int yl, int x2, int y2, void *buffer); 

    int puttext(int x1, int y1, int x2, int y2, void *buffer); 

   gettext()函数是将屏幕上指定的矩形区域内文本内容存入buffer 指针指向的一个内存空间。内存的大小用下式计算: 

     所用字节大小=行数*列数*2 

其中: 行数=y2-y1+1;列数=x2-x1+1 

   puttext()函数则是将gettext()函数存入内存buffer中的文字内容拷贝到屏幕上指定的位置。 

   int movetext(int x1, int x2, int y2, int x3, int y3); 

   movetext()函数将屏幕上左上角为(x1,y1), 右下角为(x2, y2)的一矩形窗口内的文本内容拷贝到左上角为(x3, y3)的新的位置。该函数的坐标也是相对于整个屏幕而言的。 

    注意: 

    1. gettext()函数和puttext()函数中的坐标是对整个屏幕而言的,即是屏幕的绝对坐标, 而不是相对窗口的坐标。 

   2. movetext()函数是拷贝而不是移动窗口区域内容, 即使用该函数后,原位置区域的文本内容仍然存在。 

     include <conio.h> 

     main() 

     { 

          int i; 

          char *f[]={"Load    F3", "Pick  Alt-F3", "New    ", 

                     "Save    F2", "Write to    ", "Directory", 

                     "Change dir","Os shee    ", "QuitAlt-X"}; 

          char buf[9*14*2]; 

          clrscr(); 

          textcolor(YELLOW); 

          textbackground(BLUE); 

          clrscr(); 

          gettext(10, 2, 24, 11, buf); 

          window(10, 2, 24, 11); 

          textbackground(RED); 

          textcolor(YELLOW); 

          clrscr(); 

          for(i=0; i<9; i++) 

          { 

               gotoxy(1, i++); 

               cprintf("%s", f[i]); 

          } 

          getch(); 

          movetext(10, 2, 24, 11, 40, 10); 

          puttext(10, 2, 24, 11, buf); 

          getch(); 

     } 

    下面再介绍一些函数: 

    void highvideo(void);    设置显示器高亮度显示字符。 

    void lowvideo(void);     设置显示器低亮度显示字符。 

    void normvideo(void);    使显示器返回到程序运行前的显示方式。 

    int wherex(void);        这两个函数返回当前窗口下光标的x, y坐标。 

    int wherey(void); 

  

  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以帮助您。您可以通过在VScode中创建一个C文件来编写代码并读取文本数据。然后,您可以使用所读取的数据来创建一个二维图形。这涉及到C语言中的图形库,例如OpenGL或SDL。我可以提供一些基本的代码示例来帮助您入门。 ### 回答2: 要通过VScode编写C语言程序来获取文本数据并画一个二维图形,可以按照以下步骤进行: 1. 首先,打开VScode,并确保已经安装了C语言的相关插件和编译器。 2. 创建一个新的C语言源文件,例如"main.c"。 3. 在源文件中,编写代码以读取文本数据。可以使用标准库函数如fopen()和fread()来打开和读取文件,或使用scanf()函数从标准输入读取数据。 4. 根据文本数据的格式和结构,解析数据并将其存储到适当的变量中。例如,如果文本数据是以一行一对坐标的形式给出,可以使用数组或链表存储这些坐标。 5. 使用图形库,如OpenGL或SDL,调用相关的函数以在图形窗口中绘制二维图形。例如,可以使用OpenGL的glBegin()和glVertex2f()函数来定义图形的形状和位置。 6. 遍历存储数据的变量,在图形窗口中逐个绘制点、线、多边形等。可以使用循环结构来访问每个数据点。 7. 最后,编译并运行程序。在VScode中使用编译器命令编译C文件,并确保没有错误和警告。运行程序后,应该能够在图形窗口中看到绘制的二维图形。 需要注意的是,具体的代码实现和绘图库的选择可能因个人情况而异。但以上步骤提供了一个基本的框架,可以根据具体需求进行调整和扩展。 ### 回答3: 在VScode中编写C程序可以使用C标准库的函数和数据结构来获取文本数据,并以此数据为基础画出二维图形。 首先,在C程序中使用文件操作函数打开文本文件,使用文件读取函数将数据读入程序中。读取的数据可以是保存在文本文件中的数值,每个数值代表一个点或者一条线的坐标。 接下来,通过引入图形库,如OpenGL、SDL等,使用相关函数将读取到的数据绘制成二维图形。例如,在OpenGL中,可以使用glBegin()和glVertex2f()等函数设置绘图的起点和顶点坐标,再利用glEnd()函数结束绘图过程。可以使用循环语句来遍历读取到的所有数据,逐个绘制出相应的图形元素,以达到画出二维图形的效果。 在绘制图形之前,可以使用相关函数设置窗口大小、坐标系等参数,以保证绘制的图形可以正常显示。 最后,通过编译和运行C程序,即可在VScode的输出窗口中显示绘制好的二维图形。如果需要对图形进行交互操作,还可以加入相应的事件监听和处理函数,实现用户对图形的动态操作和控制。 总之,通过VScode 编写C程序并使用相关库函数,可以获取文本数据并绘制出二维图形,这是一种常见的数据可视化方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值