Turbo C 2.0 图形编程出现错误 BGI Error

博主最近在写数据结构的课程设计。抽到了经典的《池塘夜降彩色雨》。。。表示很蛋疼。跟自己学的算法挂不上半毛钱关系。甚至我现在都还认为跟数据结构没有半毛钱关系。

o(╯□╰)o。但这也没办法,还有队友等你去carry,就是一个字。干。

查了下网上相关题目的资料跟代码。发现其实就是用Turbo C 下graphics.h里面的图形编程函数去写。

然后费劲各种努力装好了Turbo C 2.0 ,学会了用Turbo C来写程序员最喜欢的Hello world。

在运行graphics.h的函数时就出现了问题 BGI Error: Graphics not initialized (use 'initgraph')

这就是今天要说的重点。

个人认为网上提问说的好多方法都是骗积分的。对于一个Turbo C小白来说完全跟没说一样。比如我。 = 。=

这里说下我在别人的指导下成功解决的方法。~

首先。initgraph()函数里的path参数指向的是图形驱动程序所要找到的路径。

出现上述原因只有一个:程序找不到 BGI 图形驱动,初始化出错了。

请看我写的两种正确的调用方法:

方法一,比较正宗:
假设 tc 安装在 c:\tc20 下,要根据你的 tc 所在路径修改代码中的红色部分(路径中的反斜杠是转义符,要用 \\ 表示 \)。

#include <conio.h>
#include <graphics.h>

void main()
{
   int gdriver=VGA, gmode=VGAHI;
   initgraph(&gdriver, &gmode, "c:\\tc20\\bgi");

    rectangle(100,100,300,300); /*画一个方块测试*/

   getch();
    closegraph();
}

 方法二,比较偷懒:
使用以下代码前,请将 bgi 文件夹下的 EGAVGA.BGI 拷贝一份到上级目录,就是和 tc.exe 在同一个目录内


#include <stdio.h>
#include <conio.h>
#include <graphics.h>

void main()
{
   int gdriver=VGA, gmode=VGAHI;
   initgraph(&gdriver, &gmode, NULL);

    rectangle(100,100,300,300); /*画一个方块测试*/

    getch();
    closegraph();
}



为什么要写这个库? 让初学者从 Turbo C 2.0(以下简称 TC) 或 Borland C++ 3.1 开始学编程是个不错的建议,只是 TC 的环境实在太老了,复制粘贴都很不方便。有一个 Win-TC,简单用了一下,实在是个害人的东西,还不如 TC 好呢,因为它简化了所有调试的部分(或许是我没看到?),而调试是写程序相当重要的一部分。 不少老师直接拿 VC6 来讲 C 语言的,因为 VC6 的编辑和调试环境都很优秀。只可惜在 VC6 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。许多老师让学生在 TC 下绘图,因为这的确会让人有兴趣。 所以,我想给初学者一个更好的学习环境,就是 VC6 的平台 + TC 的绘图功能,于是就有了这个库。如果您刚开始学 C 语言,或者您是一位教 C 语言的老师,那么这个东西一定会让您兴奋的。 额外说明 这个库并不适合做产品,只建议用来入门学习。如果您想做简单的绘图产品,那么 SDL 库或许更适合您。或者,直接介入 DirectX 编程吧。 安装 下载的压缩包里除了说明,只有两个主要文件,将 graphics.lib 拷贝到 VC6 文件夹下的 Lib 文件夹内,将 graphics.h 拷贝到 Include 文件夹内,仅此而已,所以我就偷懒没有做安装程序了。 使用说明 目前只把我个人理解中的初学者常用的图形函数做了一下。如果您需要更多的,请发邮件告诉我:lujianfeiccie2011@163.com,或者到我的博客提出来:http://hi.csdn.net/lujianfeiccie2009,我来完善。 使用上,基本和 TC 没什么区别。看一个画圆的例子吧: #include // 就是需要引用这个图形库 #include void main() { initgraph(640, 480); // 这里和 TC 略有区别 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续 closegraph(); // 关闭图形界面 } 呵呵,很简单吧。具体的请看函数列表,以及程序范例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值