欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年C语言资料大全 .pdf

    • 资源ID:27188871       资源大小:284.63KB        全文页数:38页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年C语言资料大全 .pdf

    请不要做浮躁的人1. 不要看到别人的回复第一句话就说:给个代码吧! 你应该想想为什么。 当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。2. 初学者请不要看太多太多的书那会误人子弟的,先找本系统的学, 很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。3. 看帮助 , 不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观。4. 不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。5. 不要放过任何一个看上去很简单的小问题- 他们往往并不那么简单, 或者可以引伸出很多知识点;不会举一反三你就永远学不会。6. 知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。7. 学脚本并不难, JSP 、ASP 、PHP 等等也不过如此 - 难的是长期坚持实践和不遗余力的博览群书;8. 看再多的书是学不全脚本的,要多实践9. 把时髦的技术挂在嘴边,还不如把过时的技术记在心里;10. 学习脚本最好的方法之一就是多练习;11. 在任何时刻都不要认为自己手中的书已经足够了;12. 看得懂的书,请仔细看;看不懂的书,请硬着头皮看;13. 别指望看第一遍书就能记住和掌握什么请看第二遍、第三遍;14. 请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件;15. 把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中;16. 不要漏掉书中任何一个练习请全部做完并记录下思路;17. 当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工作。18. 别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的;19. 每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解-你能讲清楚才说明你真的理解了;20. 记录下在和别人交流时发现的自己忽视或不理解的知识点;21. 保存好你做过的所有的源文件-那是你最好的积累之一;22. 对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google 、百度都是很好的搜索引擎,你只要输入关键字就能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 38 页 - - - - - - - - - 23,到一个论坛, 你学会去看以前的帖子, 不要什么都不看就发帖子问,也许你的问题早就有人问过了, 你再问,别人已经不想再重复了, 做为初学者, 谁也不希望自己的帖子没人回的。24,虽然不是打击初学者, 但是这句话还是要说: 论坛论坛, 就是大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚! !讨论者, 起码是水平相当的才有讨论的说法, 如果水平真差距太远了, 连基本操作都需要别人给解答,谁还跟你讨论呢。能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!23,到一个论坛, 你学会去看以前的帖子, 不要什么都不看就发帖子问,也许你的问题早就有人问过了, 你再问,别人已经不想再重复了, 做为初学者, 谁也不希望自己的帖子没人回的。24,虽然不是打击初学者, 但是这句话还是要说: 论坛论坛, 就是大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚! !讨论者, 起码是水平相当的才有讨论的说法, 如果水平真差距太远了, 连基本操作都需要别人给解答,谁还跟你讨论呢。浮躁的人容易问:我到底该学什么;-别问,学就对了;浮躁的人容易问: JS有钱途吗; -建议你去抢银行;浮躁的人容易说:我要中文版!我英文不行!- 不行?学呀!浮躁的人分两种:只观望而不学的人;只学而不坚持的人;浮躁的人永远不是一个高手。学习 C+ 和编程的 50 个观点下面的是学 C+ 时要注意的。绝对经典。!1. 把 C+ 当成一门新的语言学习(和C没啥关系!真的。);2. 看Thinking In C+,不要看 C+ 变成死相;3. 看The C+ Programming Language和 Inside The C+ Object Model, 不要因为他们很难而我们自己是初学者所以就不看;4. 不要被 VC 、BCB 、BC 、MC 、TC等词汇所迷惑他们都是集成开发环境,而我们要学的是一门语言;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 38 页 - - - - - - - - - 5. 不要放过任何一个看上去很简单的小编程问题他们往往并不那么简单,或者可以引伸出很多知识点;6. 会用 Visual C+ ,并不说明你会C+ ;7. 学 class 并不难, template 、STL 、generic programming 也不过如此难的是长期坚持实践和不遗余力的博览群书;8. 如果不是天才的话, 想学编程就不要想玩游戏你以为你做到了,其实你的C+ 水平并没有和你通关的能力一起变高其实可以时刻记住:学C+ 是为了编游戏的;9. 看 Visual C+ 的书,是学不了 C+ 语言的;10. 浮躁的人容易说: XX语言不行了,应该学YY ;是你自己不行了吧!?11. 浮躁的人容易问:我到底该学什么;别问,学就对了;12. 浮躁的人容易问: XX有钱途吗;建议你去抢银行;13. 浮躁的人容易说:我要中文版!我英文不行!不行?学呀!14. 浮躁的人容易问: XX和 YY哪个好;告诉你吧,都好只要你学就行;15. 浮躁的人分两种: a)只观望而不学的人; b)只学而不坚持的人;16. 把时髦的技术挂在嘴边,还不如把过时的技术记在心里;17.C+不仅仅是支持面向对象的程序设计语言;18. 学习编程最好的方法之一就是阅读源代码;19. 在任何时刻都不要认为自己手中的书已经足够了;20. 请阅读 The Standard C+ Bible ( 中文版:标准 C+ 宝典),掌握 C+ 标准;21. 看得懂的书,请仔细看;看不懂的书,请硬着头皮看;22. 别指望看第一遍书就能记住和掌握什么请看第二遍、第三遍;23. 请看Effective C+ 和More Effective C+ 以及Exceptional C+ ;24. 不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;25. 和别人一起讨论有意义的C+ 知识点,而不是争吵 XX行不行或者 YY与 ZZ哪个好;26. 请看程序设计实践,并严格的按照其要求去做;27. 不要因为 C和 C+ 中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;28.C+绝不是所谓的 C的“扩充”如果C+ 一开始就起名叫 Z 语言,你一定不会把 C和 Z 语言联系得那么紧密;29. 请不要认为学过 XX语言再改学 C+ 会有什么问题你只不过又在学一门全新的语言而已;30. 读完了 Inside The C+ Object Model以后再来认定自己是不是已经学会了 C+ ;31. 学习编程的秘诀是:编程,编程,再编程;32. 请留意下列书籍: C+ 面向对象高效编程 (C+ Effective Object-Oriented Software Construction)面向对象软件构造(Object-Oriented Software Construction)设计模式( Design Patterns) The Art of Computer Programming;33. 记住:面向对象技术不只是C+ 专有的;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 38 页 - - - - - - - - - 34. 请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;35. 把在书中看到的有意义的例子扩充;36. 请重视 C+ 中的异常处理技术,并将其切实的运用到自己的程序中;37. 经常回顾自己以前写过的程序,并尝试重写, 把自己学到的新知识运用进去;38. 不要漏掉书中任何一个练习题请全部做完并记录下解题思路;39.C+语言和 C+ 的集成开发环境要同时学习和掌握;40. 既然决定了学 C+,就请坚持学下去, 因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;41. 就让 C+ 语言的各种平台和开发环境去激烈的竞争吧,我们要以学习 C+ 语言本身为主;42. 当你写 C+ 程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);43. 别心急,设计 C+ 的 class 确实不容易; 自己程序中的 class 和自己的 class设计水平是在不断的编程实践中完善和发展的;44. 决不要因为程序“很小”就不遵循某些你不熟练的规则好习惯是培养出来的,而不是一次记住的;45. 每学到一个 C+ 难点的时候,尝试着对别人讲解这个知识点并让他理解你能讲清楚才说明你真的理解了;46. 记录下在和别人交流时发现的自己忽视或不理解的知识点;47. 请不断的对自己写的程序提出更高的要求, 哪怕你的程序版本号会变成Version 100.XX ;48. 保存好你写过的所有的程序那是你最好的积累之一;49. 请不要做浮躁的人;50. 请热爱 C+! 百钱买百鸡问题公元钱五世纪,我国古代数学家张丘建在算经一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?main( ) int cocks,hens,chicks; cocks=0; while(cocks=19) hens=0; while(hens=33) chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3=100&chicks%3=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 38 页 - - - - - - - - - printf(%d,%d,%dn,cocks,hens,chicks); hens=hens+1; cocks=cocks+1; 水仙花数题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个“水仙花数”,因为153=1的三次方 5 的三次方 3的三次方。1. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位, 十位,百位。2. 程序源代码:main() int i,j,k,n; printf(water flowernumber is:); for(n=100;n1000;n+) i=n/100; j=(n-i*100)/10; k=n%10; if(i*i*i+j*j*j+k*k*k=n) printf(%dn,n); 用 Turbo C 备份你的硬盘分区表用 biosdisk函数即可char disk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer) 先用 bisodisk(1,ox80,1,0,1,1,buffer)将 C盘 0 磁头 0 磁道第一扇区读入buffer, 再将 buffer写入指定文件。恢复时先将该文件读如buffer, 再用 bisodisk(3,ox80,0,0,1,1,buffer)写入 C盘 0 磁头 0 磁道第一扇区。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 38 页 - - - - - - - - - 注意点,读写该文件必须用二进制方式,否则你将哭笑不得!具体参数的含义可见Turbo C 帮助,图形处理再谈 main() 主函数每一 C 程序都必须有一main() 函数,可以根据自己的爱好把它放在程序的某个地方。 有些程序员把它放在最前面,而另一些程序员把它放在最后面,无论放在哪个地方,以下几点说明都是适合的。1. main() 参数在 Turbo C2.0 启动过程中, 传递 main() 函数三个参数: argc,argv 和 env。* argc: 整数,为传给 main() 的命令行参数个数。* argv: 字符串数组。在 DOS 3.X 版本中, argv0 为程序运行的全路径名;对 DOS 3.0 以下的版本, argv0 为空串 () 。argv1 为在 DOS 命令行中执行程序名后的第一个字符串;argv2 为执行程序名后的第二个字符串;. argvargc为 NULL 。*env: 安符串数组。 env 的每一个元素都包含ENVVAR=value 形式的字符串。其中 ENVVAR 为环境变量如 PATH 或 87。value 为 ENVVAR 的对应值如 C:DOS ,C:TURBOC( 对于 PATH) 或 YES( 对于 87)。TurboC2.0 启动时总是把这三个参数传递给main() 函数,可以在用户程序中说明( 或不说明 ) 它们,如果说明了部分 (或全部 ) 参数,它们就成为 main() 子程序的局部变量。请注意:一旦想说明这些参数,则必须按argc ,argv , env 的顺序,如以下的例子:main() main(int argc) main(int argc, char *argv) main(int argc, char *argv, char *env) 其中第二种情况是合法的,但不常见,因为在程序中很少有只用argc ,而不用argv 的情况。以下提供一样例程序EXAMPLE.EXE, 演示如何在 main() 函数中使用三个参数:/*program name EXAMPLE.EXE*/ #include #include main(int argc,char *argv,char *env) int i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 38 页 - - - - - - - - - printf(These are the %d command-line arguments passed to main:nn, argc); for(i=0; i=argc; i+) printf(argv%d:%sn, i, argvi); printf(nThe environment string(s)on this system are: nn); for(i=0; envi!=NULL; i+) printf( env%d:%sn, i, envi); 如果在 DOS 提示符下,按以下方式运行EXAMPLE.EXE: C:example first_argument argument with blanks 3 4last butone stop! 注意:可以用双引号括起内含空格的参数,如本例中的:argumentwith blanks和Last but one)。 应该提醒的是:传送main() 函数的命令行参数的最大长度为128 个字符 ( 包括参数间的空格 ) ,这是由 DOS 限制的。文本窗口的定义 Turbo C2.0 的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、窗口文本的清除和输入输出等函数。Turbo C2.0 默认定义的文本窗口为整个屏幕,共有80 列( 或 40 列)25 行的文本单元, 每个单元包括一个字符和一个属性,字符即 ASCII 码字符, 属性规定该字符的颜色和强度。Turbo C2.0 可以定义屏幕上的一个矩形域作为窗口,使用window() 函数定义。窗口定义之后,用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超出窗口的边界。window() 函数的调用格式为 : void window(int left, int top, int right, int bottom);该函数的原型在 conio.h 中 ( 关于文本窗口的所有函数其头文件均为conio.h,后面不再说明)。 函数中形式参数 (int left, int top)是窗口左上角的坐标 ,(int right, int bottom) 是窗口的右下角坐标,其中(left, top) 和(right, bottom) 是相对于整个屏幕而言的。Turbo C 2.0 规定整个屏幕的左上角坐标为(1, 1) ,右下角坐标为 (80, 25) 。并规定沿水平方向为 X 轴,方向朝右;沿垂直方向为 Y 轴,方向朝下。若 window() 函数中的坐标超过了屏幕坐标的界限,则窗口的定义就失去了意义,也就是说定义将不起作用,但程序编译链接时并不出错。另外,一个屏幕可以定义多个窗口,但现行窗口只能有一个 ( 因为 DOS为单任务操作系统 ),当需要用另一窗口时,可将定义该窗口的window() 函数再调用一次,此时该窗口便成为现行窗口了。如要定义一个窗口左上角在屏幕 (20,5) 处,大小为 30 列 15 行的窗口可写成: window(20, 5, 50, 25); 文本窗口颜色的设置文本窗口颜色的设置包括背景颜色的设置和字符颜色的设置,使用的函数及其调用格式为:设置背景颜色 : void textbackground(int color); 设置字符颜色 : void textcolor(int color); 有关颜色的定义见下表:符号常数数值 含义 字符或背景 BLACK 0 黑 两者均可名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 38 页 - - - - - - - - - BLUE 1 兰 两者均可GREEN 2 绿 两者均可CYAN 3 青 两者均可RED 4 红 两者均可MAGENTA 5 洋红 两者均可BROWN 6 棕 两者均可LIGHTGRAY 7 淡灰 两者均可DARKGRAY 8 深灰 只用于字符LIGHTBLUE 9 淡兰 只用于字符LIGHTGREEN 10 淡绿 只用于字符LIGHTCYAN 11 淡青 只用于字符LIGHTRED 12 淡红 只用于字符LIGHTMAGENTA 13 淡洋红 只用于字符YELLOW 14 黄 只用于字符WHITE 15 白 只用于字符BLINK 128 闪烁 只用于字符上表中的符号常数与相应的数值等价,二者可以互换。例如设定兰色背景可以使用 textbackground(1), 也可以使用 textbackground (BLUE),两者没有任何区别,只不过后者比较容易记忆,一看就知道是兰色。Turbo C 另外还提供了一个函数,可以同时设置文本的字符和背景颜色,这个函数的调用格式为: void textattr(int attr); 其中: attr的值表示颜色形式编码的信息,每一位代表的含义如下:位 7 6 5 4 3 2 1 0 B b b b c c c c 闪烁 背景颜色字符颜色字节低四位 cccc 设置字符颜色 (0 到 15),46 三位 bbb 设置背景颜色 (0到 7),第 7 位 B设置字符是否闪烁。假如要设置一个兰底黄字,定义方法如下: textattr(YELLOW+(BLUE4); 若再要求字符闪烁,则定义变为:textattr(128+YELLOW+(BLUE4); 注意:(1) 对于背景只有 0 到 7 共八种颜色,若取大于7 小于 15 的数,则代表的颜色与减 7 后的值对应的颜色相同。(2) 用 textbackground()和 textcolor() 函数设置了窗口的背景与字符颜色后,在没有用 clrscr()函数清除窗口之前,颜色不会改变,直到使用了函数 clrscr(),整个窗口和随后输出到窗口中的文本字符才会变成新颜色。(3) 用 textattr()函数时背景颜色应左移4 位,才能使 3 位背景颜色移到正确位置下面这个程序使用了关于窗口大小的定义、颜色的设置等函数,在一个屏幕上不同位置定义了7 个窗口,其背景色分别使用了7 种不同的颜色。#include #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 38 页 - - - - - - - - - main() int i; textbackground(0); /* 设置屏幕背景色 */ clrscr(); /* 清除文本屏幕 */ for(i=1; i8; i+) window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */ textbackground(i); /* 定义窗口背景色 */ clrscr(); /* 清除窗口 */ getch(); 窗口内文本的输入输出函数一、窗口内文本的输出函数int cprintf(, ); int cputs(char *string); int putch(int ch); cprintf() 函数输出一个格式化的字符串或数值到窗口中。它与 printf()函数的用法完全一样,区别在于cprintf() 函数的输出受窗口限制,而 printf() 函数的输出为整个屏幕。cputs() 函数输出一个字符串到屏幕上,它与puts() 函数用法完全一样,只是受窗口大小的限制。putch() 函数输出一个字符到窗口内。注意:使用以上几种函数,当输出超出窗口的右边界时会自动转到下一行的开始处继续输出。 当窗口内填满内容仍没有结束输出时,窗口屏幕将会自动逐行上卷直到输出结束为止。二、窗口内文本的输入函数int getche(void); 该函数在前面已经讲过,需要说明的是,getche() 函数从键盘上获得一个字符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一行的开始位置。下面这个程序给上例中加入了一些文本的输出函数。#include #include int main() int i; char *c=BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY; textbackground(0); /* 设置屏幕背景色 */ clrscr(); /* 清除文本屏幕 */ for(i=1; i8; i+) window(10+i*5,5+i,30+i*5,15+i); /* 定义文本窗口 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 38 页 - - - - - - - - - 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 main() int i; char *f=Load F3,Pick Alt-F3,New , Save F2,Write to ,Directory, Change dir,Os shell ,Quit Alt-X; char buf11*16*2; clrscr(); textcolor(YELLOW); textbackground(BLUE); clrscr(); gettext(10, 2, 24, 11, buf); window(10, 2, 24, 11); textbackground(RED); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 38 页 - - - - - - - - - textcolor(YELLOW); clrscr(); for(i=0; i9; i+) gotoxy(1, i+1); cprintf(%s, fi); 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); Turbo C 提供了非常丰富的图形函数,所有图形函数的原型均在 graphics. h 中,本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、 图形窗口以及图形模式下的文本输出等函数。另外,使用图形函数时要确保有显示器图形驱动程序*BGI,同时将集成开发环境Options/Linker中的 Graphics lib选为 on,只有这样才能保证正确使用图形函数。图形模式的初始化不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器, 在不同模式下也有不同分辨率。因此,在屏幕作图之前, 必须根据显示器适配器种类将显示器设置成为某种图形模式,在未设置图形模式之前, 微机系统默认屏幕为文本模式(80 列,25 行字符模式 ) ,此时所有图形函数均不能工作。设置屏幕为图形模式,可用下列图形初始化函数:void far initgraph(int far *gdriver, int far *gmode,char *path); 其中 gdriver和 gmode分别表示图形驱动器和模式,path 是指图形驱动程序所在的目录路径。 有关图形驱动器、 图形模式的符号常数及对应的分辨率见下表。图形驱动程序由 Turbo C 出版商提供,文件扩展名为.BGI。 根据不同的图形适配器有不同的图形驱动程序。例如对于EGA 、 VGA 图形适配器就调用驱动程序 EGAVGA.BGI。图形驱动器、模式的符号常数及数值图形驱动器 (gdriver) 图形模式 (gmode) 色调 分辨率符号常数数值 符号常数 数值CGA 1 CGAC0 0 C0 320*200 CGAC1 1 C1 320*200 CGAC2 2 C2 320*200 CGAC3 3 C3 320*200 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 38 页 - - - - - - - - - CGAHI 4 2 色 640*200 MCGA 2 MCGAC0 0 C0 320*200 MCGAC1 1 C1 320*200 MCGAC2 2 C2 320*200 MCGAC3 3 C3 320*200 MCGAMED 4 2 色 640*200 MCGAHI 5 2色 640*480 EGA 3 EGALO 0 16色 640*200 EGAHI 1 16 色 640*350 EGA64 4 EGA64LO 0 16色 640*200 EGA64HI 1 4 色 640*350 EGAMON 5 EGAMONHI 0 2色 640*350 IBM8514 6 IBM8514LO 0 256 色 640*480 IBM8514HI 1 256 色 1024*768 HERC 7 HERCMONOHI 0 2色 720*348 ATT400 8 ATT400C0 0 C0 320*200 ATT400C1 1 C1 320*200 ATT400C2 2 C2 320*200 ATT400C3 3 C3 320*200 ATT400MED 4 2 色 320*200 ATT400HI 5 2 色 320*200 VGA 9 VGALO 0 16色 640*200 VGAMED 1 16 色 640*350 VGAHI 2 16 色 640*480 PC3270 10 PC3270HI 0 2 色 720*350 DETECT 0 用于硬件测试使用图形初始化函数设置VGA 高分辨率图形模式 #include int main() int gdriver, gmode; gdriver=VGA; gmode=VGAHI; initgraph(&gdriver, &gmode, c:caicbgi); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 38 页 - - - - - - - - - bar3d(100, 100, 300, 250, 50, 1); /*画一长方体 */ getch(); closegraph(); return 0; 有时编程者并不知道所用的图形显示器适配器种类,或者需要将编写的程序用于不同图形驱动器, Turbo C 提供了一个自动检测显示器硬件的函数,其调用格式为: void far detectgraph(int *gdriver, *gmode); 其中 gdriver和 gmode的意义与上面相同。自动进行硬件测试后进行图形初始化#include int main() int gdriver, gmode; detectgraph(&gdriver, &gmode); /*自动测试硬件 */ printf(the graphics driver is %d, mode is %dn, gdriver,gmode); /*输出测试结果 */ getch(); initgraph(&gdriver, &gmode, c:caicbgi); /* 根据测试结果初始化图形*/ bar3d(10, 10, 130, 250, 20, 1); getch(); closegraph(); return 0; 上例程序中先对图形显示器自动检测,然后再用图形初始化函数进行初始化设置,但 Turbo C提供了一种更简单的方法,即用 driver=DETECT 语句后再跟initgraph()函数就行了。采用这种方法后,上例可改为:#include int main() int gdriver=DETECT, gmode; initgraph(&gdriver, &gmode, c:caicbgi); bar3d(50, 50, 150, 30, 50, 1); getch(); closegraph(); return 0; 另外, Turbo C 提供了退出图形状态的函数closegraph(),其调用格式为:void far closegraph(void); 调用该函数后可退出图形状态而进入文本方式( Turbo C 默认方式 ) ,并释放用于保存图形驱动程序和字体的系统内存。独立图形运行程序的建立Turbo C对于用 initgraph()函数直接进行的图形初始化程序,在编译和链接时并没有将相应的驱动程序(*.BGI) 装入到执行程序, 当程序进行到 intitgraph()语句时,再从该函数中第三个形式参数char *path 中所规定的路径中去找相应的驱动程序。 若没有驱动程序, 则在 C:TC 中去找,如 C:TC中仍没有或 TC不存在,将会出现错误:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 38 页 - - - - - - - - - BGI Error: Graphics not initialized (use initgraph) 因此,为了使用方便, 应该建立一个不需要驱动程序就能独立运行的可执行图形程序, Turbo C 中规定用下述步骤 ( 这里以 EGA 、VGA显示器为例 ) :1. 在 C:TC 子目录下输入命令 :BGIOBJ EGAVGA 此命令将驱动程序EGAVGA.BGI 转换成 EGAVGA.OBJ的目标文件。2. 在 C:TC 子目录下输入命令 :TLIB LIBGRAPHICS.LIB+EGAVGA 此命令的意思是将 EGAVGA.OBJ 的目标模块装到 GRAPHICS.LIB 库文件中。3. 在程序中 initgraph()函数调用之前加上一句 : registerbgidriver(EGAVGA_driver):该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。经过上面处理,编译链接后的执行程序可在任何目录或其它兼容机上运行。假设已作了前两个步骤,若再向例6 中加 registerbgidriver()函数则变成:#include #include int main() int gdriver=DETECT,gmode; registerbgidriver(EGAVGA_driver); /* 建立独立图形运行程序 */ initgraph(gdriver, gmode,c:caicbgi); bar3d(50,50,250,15

    注意事项

    本文(2022年C语言资料大全 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开