问题描述
- 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].namech)==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].namech)!=0);
}
q->next=NULL;
fclose(fp);
return head;
}
打开文件的代码
运行后
或者
解决方案
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
解决方案二:
死循环了,代码肯定有问题
解决方案三:
你的代码要是没错,只能说明语法上没错,但是你在链接上可能出错,还有你的代码逻辑上有问题
解决方案四:
我建议你使用断点调试一下,看看死循环发生在哪个while中, 再一步步调试问题
解决方案五:
代码没错,说的好霸气。既然代码没错,那就是你电脑坏了,赶快扔了买新的吧。
时间: 2025-01-20 17:12:58