当前位置:编程学习 > C/C++ >>

为什么用c语言画图总蓝屏?

补充:谁能告诉我?
答案:你用tc画图,估计用的不是标准库函数吧 
========================================
我用的就是grahpics.h,wintc 就是trubo的内核

--------------------------------------------------------

我用的是win-tc和turbo c,用标准c函数画图
我用的就是grahpics.h,wintc 就是trubo的内核
---------
你画图不是用的标准c,其他的编译器估计没办法
检查一下程序吧还是,:)

--------------------------------------------------------

程序是没问题的 运行源代码也会蓝屏

--------------------------------------------------------

是否是 文本模式 和 图形模式 频繁切换造成的?

可以的话,
建议楼主单步运行程序,
直到找到错误的发生语句,
然后查找所有之前的和这个错误语句相关的语句(比如操作相同变量的语句)。

--------------------------------------------------------

或者楼主试试更换图形驱动试试,
就是 环境目录下的那个 BGI 文件。

--------------------------------------------------------

一般情况下,
认为是你的代码有问题。

因为在简单绘图情况下,
(比如只是启动图形模式,绘制一条直线)
这样的程序,
楼主试试运行多次会不会蓝屏,
如果会,检查你的环境、图形驱动......

--------------------------------------------------------

运行简单的图形也会蓝屏,因为我画的就是一个正方形
我认为是切换全屏以后,驱动造成的问题!
所以怎么检查图形驱动?

--------------------------------------------------------

建议楼主单步运行程序
===================
每一次都是运行5,6次以后就蓝屏,也就是前4次都是输出正确的图形,所以程序肯定是正确的

--------------------------------------------------------

代码帖出来大家看看,我不相信程序没问题,呵呵

--------------------------------------------------------

每一次都是运行5,6次以后就蓝屏,也就是前4次都是输出正确的图形,所以程序肯定是正确的
-----------
前几次正确就说明代码没问题了?
你这样的结果八成是代码问题,你所说的输出正确图形只不过是表面现象而已

--------------------------------------------------------

代码如下:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
int gdriver = DETECT, gmode;
void *ball;
int x, y,maxx;
unsigned int size;

initgraph(&gdriver, &gmode, "");

maxx = getmaxx();
x = 0;
y = 200;
rectangle(x,y+11,x+20,y+31);
circle(x+10,y,10);
size = imagesize(x, y-10, x+20, y+10);
ball = malloc(size);
getimage(x, y-10, x+20, y+10, ball);

while (!kbhit())
{
putimage(x, y-10, ball, XOR_PUT);
x += 10;
if (x >= maxx)
x = 0;
putimage(x, y-10, ball, XOR_PUT);
delay(100);
}

free(ball);
closegraph();
return 0;
}

上一个:C语言数据结构的插入问题
下一个:用C语言编程输出菱形 图案

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,