ucdos 怎么用不了??刚开始的时候还好好的,程序都能很好的运行、但是现在相同的程序在UCDOS下却不能运行

#include<string.h>#include<stdio.h>#include<graphics.h>#include<conio.h>voidinput();v... #include<string.h>
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
void input();
void read();
main()
{
char i;
int drive=DETECT,mode;
initgraph(&drive,&mode," ");
cleardevice();
setbkcolor(9);
printf("\16[co4st8e320,170,0,360,300,70,2,4]");
printf("\16[{-10|20@48,24=2(14)9中南大学}]");
printf("\16[{-90|140@55,55=11(13)9图书管理系统}]");
printf("\16[{-246|280@20,20=8(12)9设计者: 电气信息1020 邓兆平 }]");
printf("\16[{-250|360@20,20=8(4)9请按Enter键进入}]");
getch();
for( ; ;)
{
cleardevice();
setbkcolor(9);
printf("\16[{-5|30@40,40=30(2)9* * * * * * 菜 单 * * * * * *}]");
printf("\16[{-130|100@35,35=30(7)9a 输入}]");
printf("\16[{-400|100@35,35=30(7)9b 显示}]");
printf("\16[{-130|145@35,35=30(7)9c 修改}]");
printf("\16[{-400|145@35,35=30(7)9d 查找}]");
printf("\16[{-130|205@35,35=30(7)9e 删除}]");
printf("\16[{-400|205@35,35=30(7)9f 恢复}]");
printf("\16[{-130|260@35,35=30(7)9g 添加}]");
printf("\16[{-400|260@35,35=30(7)9h 统计}]");
printf("\16[{-130|315@35,35=30(7)9i 保存}]");
printf("\16[{-400|315@35,35=30(7)9j 打开}]");
printf("\16[{-130|360@35,35=30(7)9k 退出}]");
printf("\16[{-400|380@24,24=11(7)4请选择a至j}]");
i=getch();
if(i=='k') break;
else switch(i)
{case'a': input();break;
case'b': read();break;
case'c': ;break;
case'd': ;break;
case'e': ;break;
case'f': ;break;
case'g': ; break;
case'h': ;break;
case'i':;break;
case'j': ; break;
}}}
struct book
{
int num1;
int num2;
char bookname[20];
char writer[20];
int time;
float price;
int leftnum;
int borrowednum;
int allnum;
};
struct book lib;
void input()
{
struct book lib;
char num[100],ch;
FILE *fp;
if((fp=fopen("book.dat","w"))==NULL)
{printf("can't open file book.dat\n");
exit(0);
}
do
{
printf("请输入序号");scanf("%d",&lib.num1);
printf("请输入书代号");scanf("%d",&lib.num1);
printf("请输入书名");scanf("%s",&lib.bookname);
printf("请输入作者名");scanf("%s",&lib.writer);
printf("请输入出版时间");scanf("%d",&lib.time);
printf("请输入价格");scanf("%f",&lib.price);
printf("请输入库存量");scanf("%d",&lib.leftnum);
printf("请输入借出数量");scanf("%d",&lib.borrowednum);
lib.allnum=lib.leftnum+lib.borrowednum;
printf("库存总的数量%d/n",lib.allnum);
fwrite(&lib,sizeof(struct book),1,fp);
printf("需要再输入另一个书的信息吗?(y/n)");
ch=getchar();getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);

}
void read()
{
FILE *fp;
char ch;
if((fp=fopen("book.dat","rt"))==NULL)
{
printf("cannot open the file!strike any key exist");
getch();
exit(0);
}
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
展开
 我来答
百度网友7022010
2011-06-13 · TA获得超过882个赞
知道小有建树答主
回答量:1025
采纳率:72%
帮助的人:806万
展开全部
如果在你编译的电脑上能运行,换了一台电脑后不能运行,需要按以下步骤解决,在编译之前需要把egavga.bgi驱动加入graphics.lib,做以下三个步骤:

把egavga.bgi转换为egavga.obj

cd C:\TC20\BGI
bgiobj.exe egavga

把egavga.obj加入到graphics.lib中

cd C:\TC20\
TLIB.EXE lib\graphics.lib + bgi\egavga.obj

在 initgraph(&drive,&mode,"");之前增加一行registerbgidriver(EGAVGA_driver);
注意 initgraph(&drive,&mode,"");这行中的两个双引号之间无空格。
这样编译好的程序就能在任何电脑上运行了。 运行程序之前还要运行 tx 命令,否则会出现乱码。
匿名用户
2011-06-17
展开全部
想必你使用 ucdos 是为了能在 tc 下面输出中文吧。那就不要用 dos 了,换 vc 一类的现代一些的编译器多好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式