conio包含的函数及作用

2023-05-16

 

conio.h是TC特有的,用于输入输出图形方面.

 conio.h   conio.h不是C标准库中的头文件。
  conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
  包含的函数
  cgets(char *);
  cprintf(const char *, ...);
  cputs(const char *);
  cscanf(const char *, ...);
  inp(unsigned short);
  inpw(unsigned short);
  getch(void);
  getche(void);
  kbhit(void);
  outp(unsigned short, int);
  outpw(unsigned short, unsigned short);
  putch(int);
  ungetch(int);
  void _Cdecl clreol (void);
  void _Cdecl clrscr (void);
  void _Cdecl delline (void);
  int _Cdecl gettext (int left, int top, int right, int bottom,
  void *destin);
  void _Cdecl gettextinfo (struct text_info *r);
  void _Cdecl gotoxy (int x, int y);
  void _Cdecl highvideo (void);
  void _Cdecl insline (void);
  void _Cdecl lowvideo (void);
  int _Cdecl movetext (int left, int top, int right, int bottom,
  int destleft, int desttop);
  void _Cdecl normvideo (void);
  int _Cdecl puttext (int left, int top, int right, int bottom,
  void *source);
  void _Cdecl textattr (int newattr);
  void _Cdecl textbackground (int newcolor);
  void _Cdecl textcolor (int newcolor);
  void _Cdecl textmode (int newmode);
  int _Cdecl wherex (void);
  int _Cdecl wherey (void);
  void _Cdecl window (int left, int top, int right, int bottom);
  har *_Cdecl cgets (char *str);
  int _Cdecl cprintf (const char *format, ...);
  int _Cdecl cputs (const char *str);
  int _Cdecl cscanf (const char *format, ...);
  int _Cdecl getch (void);
  int _Cdecl getche (void);
  char *_Cdecl getpass (const char *prompt);
  int _Cdecl kbhit (void);
  int _Cdecl putch (int c);
  int _Cdecl ungetch (int ch);

 

具体介绍::

C语言中,图形函数大致可分为两类:字符模式函数和图形模式函数。本节我们练习使用字符模式函数。  
          使用字符模式函数应该在程序中联入conio.h头部文件。  
          下面是一些函数的作用  
  1)     void     clreol();           从光标处删除到本行末  
  2)     void     delline();         清除本行内容,下面内容上提一行  
                      delline();函数实际上还起到了向上卷屏的作用。  
  3)     void     insline();         在光标所在行插入一空行,原来该行及以  
                                                          下各行皆向下移一行  
  4)       int     wherex();           返回当前光标的x(行)坐标  
  5)       int     wherey();           返回当前光标的y(列)坐标  
  6)     void     highvideo();     字符输出用高亮度字符  
  7)     void     lowvideo();       字符输出用低亮度字符  
  8)     void     normvideo();     字符输出用普通亮度字符  
          在以上的各函数中皆不带参数,当然也可以写成括号中有void的形式:  
          void   wherex(void);         还可以写成         wherex();  
          清屏、清行、向后删行、插行的操作真有些CCED、WPS等编辑软件的风格,就是在你平时的屏幕设计中也用少不了。返回坐标的函数则给你的设计提供每一个环节的光标坐标值。有利于你前后响应。字  
  符亮度的改变则会让你的字符显示出层次感,怎么样,赶快试试吧:  
  /*   No32.c*/  
  #   include   "stdio.h"  
  #   include   "conio.h"  
  main()  
  {   clrscr();  
      gotoxy(10,1);  
      cprintf("甜密密,");  
      highvideo();                                                       /*高亮度显示*/  
      cprintf("/r/n                   你笑得甜密密,");  
      lowvideo();                                                         /*低亮度显示*/  
      cprintf("/r/n                   好象花儿开在春风里,");  
      normvideo();                                                       /*普通亮度显示*/  
      gotoxy(10,4);   cprintf("开在春风里");  
      cprintf("/r/n                   在哪里,在哪里见过你?");  
      printf("/r/n                   你的笑容这样熟悉。");  
      gotoxy(10,20);printf("任意键删去光标后的内容");  
      gotoxy(18,3);           getch();  
      gotoxy(18,3);  
      clreol();                                                             /*删去光标后字符*/  
      gotoxy(10,20);printf("任意键删去本行的内容     ");  
      gotoxy(18,3);           getch();  
      delline();                                                           /*删去本行*/  
      gotoxy(10,20);printf("任意键在本行插一空行     ");  
      gotoxy(18,3);           getch();  
      insline();                                                           /*插入一空行*/  
      gotoxy(1,7);  
  }  
          应该注意的是,要发挥本节所讲的函数的作用,在显示时不能使printf函数,应使用cprintf函数。它的使用方法和printf的完全一样,只不过后面的cprintf能发挥亮度设置和颜色设置的作用。前者  
  printf函数只有一种颜色和单一的亮度。  
          在cprintf函数中,“/n”的作用不再是既回到行首又换行,它只起一个换行的作用,所以要把内容在行首显示必须再加一个“/r”  
          上面的程序不是一真正对大家有用的程序,只是用来说明一个刚刚学到的几个函数的作用。在conio.h中还有一些字符型函数,它们都是带参数的。  
  9)     void   textcolor(颜色);                 定义显示字符颜色  
  10)   void   textbackground(颜色);       定义背景颜色  
          下面是颜色数字和颜色对照表  
          BLACK             0       黑                           DARKGRAY           8         深灰  
          BLUE               1       兰                           LIGHTBLUE         9         淡兰  
          GREEN             2       绿                           LIGHTGREEN       10       淡绿  
          CYAN               3       青                           LIGHTCYAN         11       淡青  
          RED                 4       红                           LIGHTRED           12       淡红  
          MAGENTA         5     洋红                         LIGHTMAGENTA   13       淡洋红  
          BROWN             6       棕                           YELLOW               14       黄  
          LIGHTGRAY     7     淡灰                         WHILT                 15       白  
          背景颜色值只能是0-7共8个数字或其对应的英文大写单词。而前景(即字符)的颜色可以是0-15共16种颜色或其对应的英文大写单词。当你定义的前景和背景相同时,屏幕上看不到输出的内容。  
          textcolor(4);     和     textcolor(RED);     效果是相同的。  
          设置屏幕颜色还可以使用  
  11)   void   textattr(前景颜色+(背景颜色));  
          但这里的背景颜色要有“<<4”。如白底红字,就是:  
              textattr(RED+(WHITE<<4));  
  12)   int   gettext(左上角x,左上角y,右下角x,右下角y,内存指针);  
                              把定义的长方形区域内的内容存在内存中  
  13)   int   puttext(左上角x,左上角y,右下角x,右下角y,内存指针);  
                              把内存中存好的内容显示在新定义的矩形块内  
          这里的内存指针也可用字符形数组来代替。需要注意的是内存大小应该是所存内容的“行数*列数*2”。比如把第3行第5列到第6行第75列的数据存到内存中,可以用下面的片段:  
          char   buffer[4*70*2];  
          gettext(5,3,75,6,buffer);  
          然后你就可以用puttext函数来显示它了。  
  14)   void   movetext(左上角x,左上角y,右下角x,右下角y,  
                                                                                新左上角x,新左上角y);  
                                把矩形块移到新左上角(x,y)决定的地方  
  15)   void   window(左上角x,左上角y,右下角x,右下角y);  
                              定义一个窗口,大小就是上面参数决定的长方形  
          利用这一函数,你可以在屏幕上任何一个地方开辟一个窗口,并在上面显示需要的内容。这丝毫不影响屏幕其它地方的内容。当你定义了窗口后,你只能操作该窗口,gotoxy(),wherex(),wherey(),  
  clrscr()等等函数所表示的都是你定义窗口中的情况。实际上这就为我们的操作带来了方便,你想操作哪儿,就定义哪儿,想回到平时状态的屏幕,就定义一个最大的窗口,window(1,1,80,25);就复原了。  
          No.33号例子是利用puttext和gettext函数以及颜色定义来模仿CCED和WPS的菜单显示。但这个小程序没有可移动的光条,也没有菜单中内容的相应执行程序,只是演示一下屏幕的保存和释放而已。  
  /*   No33.c   */  
  #include   "conio.h"  
  #include   "stdio.h"  
  main()  
  {     int   i=1,j,ch;  
        char   buffer[6*50*2];               /*开辟内存空间的大小*/  
        clrscr();  
        textcolor(0);                             /*定义字符颜色*/  
        textbackground(7);                   /*定义背景颜色*/  
        gotoxy(1,1);  
        cprintf("         功能1               功能2             功能3         ");  
        textbackground(0);  
        textcolor(14);  
        gotoxy(1,2);  
        cprintf("What's   your   name?                 你叫什么名字");  
        cprintf("/n/rMy   name   is   Wang   Dong.         我叫王东.");  
        cprintf("/n/rHow   old   are   are   you?           你多大了   .   ");  
        cprintf("/n/rI'm   thirty-four.                   我四十四了");  
        cprintf("/n/r/n/rThis   is   Lesson   One.             这是第一课");  
        while(1)  
        {   j=i;  
            textcolor(0);  
            textbackground(7);  
            if(i==1)  
            {   gettext(1,2,13,5,buffer);  
                gotoxy(2,2);       cprintf("│第一课│");  
                gotoxy(2,3);       cprintf("│第二课│");  
                gotoxy(2,4);       cprintf("│第三课│");  
                gotoxy(2,5);       cprintf("└───┘");  
            }  
            if(i==2)  
            {   gettext(13,2,25,5,buffer);  
                gotoxy(14,2);       cprintf("│菜单一│");  
                gotoxy(14,3);       cprintf("│菜单二│");  
                gotoxy(14,4);       cprintf("│菜单三│");  
                gotoxy(14,5);       cprintf("└───┘");  
            }  
            if(i==3)  
            {   gettext(25,2,37,5,buffer);  
                gotoxy(26,2);       cprintf("│说明A   │");  
                gotoxy(26,3);       cprintf("│说明B   │");  
                gotoxy(26,4);       cprintf("│说明C   │");  
                gotoxy(26,5);       cprintf("└───┘");  
            }  
            textcolor(14);  
            gotoxy(10,20);printf("→向右移动     ←向左移动     Esc   退出");  
            ch=getch();  
            if((ch==75)&&(i==1))                 /*菜单个数的判断*/  
            {     i=3;   ch=0;}  
            if((ch==77)&&(i==3))                 /*ASCII码   77是右箭头*/  
            {     i=1;   ch=0;}  
            if((ch==75)&&(i>1))                   /*ASCII码   75是左箭头*/  
                i--;  
            if((ch==77)&&(i<3))  
                i++;  
            if(ch==27)  
                break;  
            puttext(j*12-11,2,j*12+1,5,buffer);  
      }  
  }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

conio包含的函数及作用 的相关文章

随机推荐

  • 【已解决】Mac 无法使用 GDB 进行调试的问题

    问题 Mac 初次使用 GDB 进行调试时 xff0c 会出现 xff1a gdb run Starting program usr local bin fabnacci Unable to find Mach task port for
  • 【Git】解决 git pull 提示 Permission denied (publickey) 的问题

    问题 在使用 ssh keygen 创建 github 秘钥时没有使用默认文件 xff0c 而是自定义了 xxx github 的秘钥文件 xff0c 然后将公钥添加到 github 上 之后发现每次 Mac 开机后使用 git pull
  • 【保研复习】数据结构复习笔记

    基于王道数据结构进行的保研面试复习 文章目录 数据结构绪论数据结构1 逻辑结构线性结构线性表栈队列 非线性结构树图集合 xff08 无序 xff09 2 存储结构顺序存储链式存储索引存储散列存储 3 数据的运算 算法特点效率度量时间复杂度空
  • MAVLINK 请求参数和接收参数

    if decodeState 61 61 1 之后是放在mavlink消息解析后面 请求返回参数配置列表 void MavDebug on pushButton 3 clicked mavlink message t msg mavlink
  • JSP与servlet的区别

    一 了解Servlet的概念 Servlet定义 xff1a Servlet是基于Java技术的Web组件 xff0c 由容器管理并产生动态的内容 Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能 Servlet与客户端
  • CSS简单的图片居中

    图片的居中显示 css 有很多方法 xff0c 但在很多情况下有的方法无效 xff0c 这是件很头疼的事情 xff0c 比如 一般设置图片属性 text align center 水平居中 xff0c 但这个方法经常无效 xff0c 很多前
  • jsp中的javabean

    一 JavaBean简介 JavaBean是一种特殊的Java类 xff0c 它遵从一定的设计模式 xff0c 开发工具和其他组件可以根据这种模式来调用JavaBean JSP中使用的JavaBean非常简单 xff0c 这种简单JavaB
  • Session简述

    session概述 session用于记录用户的状态 xff0c 指的是在一段时间内 xff0c 单个客户端和web服务器的一连串相关的交互过程 在一个session中 xff0c 客户可能会多次请求访问同一个资源 xff0c 也有可能请求
  • MVC框架理解

    简介 MVC开始是存在于桌面程序中的 xff0c M是指业务模型 xff0c V是指用户界面 xff0c C则是控制器 xff0c 使用MVC的目的是将M和V的实现代码分离 xff0c 从而使同一个程序可以使用不同的表现形式 比如一批统计数
  • Docker与容器的区别

    容器 虚拟机和容器结构主要区别在于中间两层 xff0c 虚拟机自带了操作系统 xff0c 这个操作系统可以和宿主机一样 xff0c 也可以不一样 xff0c 而容器是和宿主机共享一个操作系统 我们知道 xff0c 操作系统的内容是很多的 x
  • bootloader协议制定开发感悟

    制订协议最好是能站在巨人的肩膀上 xff0c 这样能节省时间 xff0c 心里也更加有谱 自己制定协议很容易被细节带偏 对于较为复杂得的协议 xff0c 整个框架一定要清晰
  • STM32不能跑程序,Keil软件中debug出现 cannot access memory

    使用stm32f40X时 xff0c 通过ST LINK下载程序后 xff0c 发现GPIO引脚电压乱跳 xff0c debug过程发现keil软件弹出cannot access memory 在下载程序过程中 xff0c keil提示 将
  • python:这种错误的原因和解决方法 "NameError:name 'self' is not defined?"

    class A def init self a self a 61 a def p self b 61 self a print b 在学习的时候 xff0c 写了以上代码 xff0c 报了如下的错误 NameError name 39 s
  • Ubuntu系统用VNCViewer连不上远程的解决办法

    有时Ubuntu重启电脑重新联网之后 xff0c 用VNCViewer远程时提示timeout 解决办法 点击Ubuntu电脑系统的设置按钮 xff0c 进入共享选项卡 检查远程登录是不是已经开启 xff0c 屏幕共享是不是活动状态 屏幕共
  • STM32串口DMA方式发送数据

    文章目录 一 DMA介绍1 概括2 DMA由来2 1程序传送方式2 2中断传送方式2 3DMA原理 3 DMA具有的功能4 DMA传输方式5 DMA主要特征6 DMA处理7 DMA工作框图8 DMA工作传送过程 二 串口DMA方式发送数据1
  • 每日一练20210629

    1 下列叙述中正确的是 2021 06 29 21 59 14 A 算法的效率只与问题的规模有关 而与数据的存储无关B 算法的时间复杂度是指执行算法所需要的计算工作量C 数据的逻辑结构与存储结构是一一对应的D 算法的时间复杂度与空间复杂度一
  • Aborted (core dumped)

    在百度谷歌了无数次之后 xff0c 看了许多关于Aborted xff08 core dumped xff09 的解决方法后 xff0c 终于找到一个解决办法 文章来自 http blog 163 com wujiaxing009 64 1
  • slam开发心得

    slam是目前比较流行 xff0c 并且是门槛较高的一个领域 xff0c 它与人工智能紧密相关 自己想就这篇博客谈谈自己在这个领域2年多来的心得 回顾这2年来自己的学习过程 xff0c 可以说是艰辛 xff0c 自己不是搞软件开发的 xff
  • STM32基于FreeRTOS的多任务程序

    STM32基于FreeRTOS的多任务程序 任务要求FreeRTOS移植介绍应用 总结 任务要求 在STM32下完成一个基于FreeRTOS的多任务程序 xff0c 执行3个周期性task task1 xff0c 每间隔500ms闪烁 xf
  • conio包含的函数及作用

    conio h是TC特有的 xff0c 用于输入输出图形方面 conio h conio h不是C标准库中的头文件 conio是Console Input Output xff08 控制台输入输出 xff09 的简写 xff0c 其中定义了