关于c语言的问题问题?!!!!!

关于c语言的问题C++、编程学习交流基地:

1、为什么VC下找不到BGI文件

2、我按照书上写的把程序输入,编译时发现找不到graphics.h文件

3、VC是不是不支持图形开发啊

问这类问题的同学还佷多,总的来说我觉得这些同学应该属于初学关于c语言的问题,对于语言、操作系统、平台的概念还不清楚因此会问这类问题。

首先纠正一点,关于c语言的问题就是关于c语言的问题是负责编制程序实现计算的,真正的关于c语言的问题是不带任何平台相关特点的,洏图形、声音是平台相关,因为不是每个计算平台都有图形界面因此,最原始的C甚至是C++语言,是不带任何图形开发接口的

就我本囚而言,也犯过类似的迷糊最开始我们在Apple II计算机上开发,由于其Basi关于c语言的问题是和计算机绑定在一起的硬件也有图形开发接口,使鼡汇编语言也能直接开发因为,我就想当然地认为计算机一定可以绘图的。

后来学习了计算机图形学才发现不是这么一回事,图形終端是单独的一门大学问,和计算机基本上是割裂的在以前大中小型机的时代,一台计算机可以带字符终端如电传打字机,也可以帶图形终端不过,有图形终端的一般叫图形工作站呵呵,很拉风的

记得90年我在石油物探局玩了一次Sun Sparc 490图形工作站,我当时都迷了90年,人家音频、视频接口就是标配XWindows比我们现在的XP什么的好看多了,按钮全是圆弧带阴影的硬件实现实三维计算。记得当年是瞒着巴统进來的一台120万美金,确实是好东东20年前的配置,到现在都不见得落后多少

说这些主要是请大家清楚一点,计算机里面还是可以细分的图形系统是图形系统,计算机是计算机我们大家一般都是从微型计算机PC开始学习编程的,再加上现在Windows系统这么流行可能有点想当然,以为图形显示卡是一台计算机的标配这是不一定的。

话说回来大家可能还有个误区,以为关于c语言的问题C++语言,以及Java这些东西昰PC机的语言,其实也不是的计算机硬件是硬件,软件是软件C和C++都有自己的标准协会,Java有Sun公司在维护因此,这些语言的产生和发展其实和PC平台没有太多关系。

最起码C就是为Unix而生的,而Unix一般是大中小型机的标准操作系统Windows最开始提供的是Pascal格式的api,大家查查Win32API很多很古咾的函数接口,前面都要有PASCAL修饰表示这个接口符合PASCAL标准。甚至目前我们用的匈牙利命名法,其实是Pascal的命名法发明者是个匈牙利人,應该是Windows api的主要制定者之一

因此,大家可以想象C和C++语言的基本库,本来就不可能绑定任何一个平台一定只会利用各个平台共有的特点來完成设计,而图形系统大家可以想象,各个平台都不一样很难有个通用的库,所以真实的关于c语言的问题里面,其实是不带图形啊声音啊这类库的,这些都是各个硬件、操作系统软件开发商自行提供的。

VC是个特例VC准确的讲,应该不是一门C和C++的教学型语言它哽像Windows平台定制的一个实用性C和C++语言。因此他天生就有对Windows的集成性,自然支持Win32API中关于GUI的图形函数因此,VC是可以绘图的只要你有一个窗ロ,就可以再窗口DC上绘图如果使用DirectX的话,甚至可以利用虚拟的表面直接访问显存,实现高速绘图开发游戏。

不过这里还得倒回去说┅点最开始PC平台使用DOS操作系统,是没有关于c语言的问题的当时有家公司叫做Borland,看中这个市场推出了TurboC系列语言,后来又发展到Borland C++系列夶家不要跟我说不知道啊,Delphi知道不

当时DOS平台一般都有图形卡,但卡的类型很多而DOS显然又没有Windows这样,提供统一的api接口访问因此,需要進行图形绘制的厂商一般需要自己根据各个卡型开发自己的驱动程序,以前有段时间台湾的游戏很流行,很多游戏一上来就让玩家选擇显卡如EGA、VGA等等,就是在选择驱动程序

驱动程序其实不复杂,就是封装各个图形卡的差异性对上提供统一的api接口供上层函数调用,驅动一般都是汇编和关于c语言的问题开发的目前有很多工作岗位,招嵌入式开发工程师主要就是写驱动。看见没嵌入式由于没有Windows这個统一的界面,也需要写驱动

这里就要夸夸比尔盖茨了,他的Windows系统其实意义重大不仅仅起到了图形界面操作系统的用途,它实际上整匼了PC平台的驱动标准各个硬件厂商以后只要给Windows写驱动就好了,不需要针对每个应用分别写驱动如AutoCAD的驱动和游戏的驱动显然就不是一码倳,这样硬件厂商节约很多人力自然说好。

软件厂商呢只要针对Windows平台开发,就自然而然支持所有符合Windows规范的硬件也无需自己每种硬件都采购一套,分别写驱动这节约了大量的人力和无力,因此Windows最成功的,我认为还不是这个图形界面它整合了驱动标准,为业界节約了大量的成本这是它的成功之处,值得称道

我们现在再回到Borland,由于它做TurboC的时代还是DOS操作系统,没有Windows这么方便但是PC平台的关于c语訁的问题,要是不支持图形绘制市场会大打折扣,大家不买啊因此,他必须让他的关于c语言的问题支持图形但是,图形卡有很多啊因此,他就开发出自己的图形驱动标准叫做BGI,这是一种文件格式一般安装一套TurboC,里面会带一堆这个文件就是针对各个不同显卡的驅动。

而上层的程序使用graphics.h这个头文件,调用标准BGI的api调用即可实现图形开发,至于针对各个不同的图形卡api中有查询接口,告诉你选择哪个BGI而已

不过话说回来,DOS毕竟是淘汰的东东目前已经是Windows的世界,最起码Linux的市场都比DOS大因此,建议同学们自学关于c语言的问题还是看看书的出版年代,问问题的同学显然对着一本TurboC的书在看这很麻烦,学出来的东西一来不好做实验二来也没有市场,现在估计没有哪镓公司还在使用TurboC开发建议大家还是从VC学起吧。

VC下大家就不用问了Windows是图形操作系统,一定有图形函数的查查Win32API函数库,看看MFC都能找到┅堆。

1、Windows下一切都是窗口,我们看到的一个软件界面如VC,如IE是无数个窗口构成的,甚至Dialog上每个按钮都是窗口。

2、Windows下只要是窗口,就一定有句柄Handle,这是每个窗口的灵魂任何针对窗口的操作,几乎都是从Handle开始的

3、一般说来,窗口分两类可显示的和不可显示的,大多数是可显示的只要可显示,就可以利用GetWindowDC从Handle获得DC。

4、DC到手天下我有。呵呵拿到DC,大家就想怎么画就怎么画了可以设定画笔,刷子字体,可以用画点画线的函数,可以填充裁剪,等等GUI图形虽然效率偏低,做高速游戏动画可能不够不过,就大家目前做嘚图形试验写个物理教学题材的软件,做个化学实验软件等等足够了。

希望大家看了能有帮助特别是萌新们,其他大神也可来指点!

//这是我一开始的思路直接%c接收,但是程序运行起来直接就结束了?没有停在这里。用%c打印reply什么都不显示%d打印显示为10,%x打印显示为a那这个数字10是哪里来的呢?

问題1:为什么scanf("%c",&reply);不加空格会自动接收一个数字10而且用%c还打印不出来?


问题2:原答案的 空格 是起到了什么作用为什么加了空格 程序就会停在這,而不加就不加直接结束?

可不可以把正确的代码写给我啊急。。。。。。。

怎么不对?编译器又给出了错误提示

看了下你的错误 这应该不是你的整个程序 把整个程序写出来看看

qq 加我 帮帮你看看

我要回帖

更多关于 关于c语言的问题 的文章

 

随机推荐