qq_35084195 2016-05-22 12:43 采纳率: 100%
浏览 3466
已采纳

VC++ 6.0的问题,代码没错,运行不了

用C写了个程序,要打开文件,当没有创建该文件时,运行正常,只是提示没找到。但是创建了文件后,在运行就抽搐了
BL *Creat()
{BL *p,*q;
int j=1;
char ch[5]={"end"};
FILE *fp;
fp=fopen("busline.txt","r+");
if(fp==NULL)
{printf("不能打开此文件!");
exit(0);
}
p=(BL *)malloc(sizeof(BL));
head=p;
q=p;
fscanf(fp,"%d",&(p->busnum));
do
{fscanf(fp,"%d %s",&(p->stop[j].num),p->stop[j].name);
j++;
}while(strcmp(p->stop[j-1].name,ch)==1);
while(!feof(fp))
{j=1;
p=(BL *)malloc(sizeof(BL));
q->next=p;
q=p;
fscanf(fp,"%d",&(p->busnum));
do
{fscanf(fp,"%d %s",&(p->stop[j].num),p->stop[j].name);
j++;
}while(strcmp(p->stop[j-1].name,ch)!=0);
}
q->next=NULL;
fclose(fp);
return head;
}
打开文件的代码
运行后图片说明
或者图片说明

  • 写回答

5条回答 默认 最新

  • 小灸舞 2016-05-22 13:24
    关注

    崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

    代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
    提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
    单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站