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条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?