
一、在keil中调试c语言程序
1、打开我们的程序,点击菜单栏右侧的start/stopdebug..按钮,进入调试模式,如下图。
2、左侧为寄存器窗口,右上方是汇编窗口,我们可以看到各个寄存器的数值和c语言对应的汇编代码,如下图。
3、点击单步执行按钮或者点击f11、f10,都可以进入单步执行模式,方便我们看程序流程和执行步骤,如下图。
4、点击菜单栏的串口按钮,我们来调试串口的输出,这里有很多对应的调试工具可供选择,如下图。
5、单步执行,我们看到各个窗口的变化,当直行到输出时,可以看到串口窗口有相应的字符输出,如下图。
6、再次点击start/stop按钮来停止调试,如下图。
二、用vs2012对C语言进行调试
1、要对编程环境左边的一条竖直的空开的地方进行点击,点击的是你要调试的相应的语句。
2、点击窗口上方的工具栏的调试界面,点击逐语句或逐过程,都没关系。
3、开始调试,在调试过程中每个调试语句都要按一次F5键,在键盘上按下,你可以看到执行的当前的语句中,左边位置的红点有个箭头。
4、在每次调试语句中,变量值发生改变时,下方的小界面都会显示出来,看是否正确。
5、不断地重复这个步骤,知道发现错误的地方为止。
6、发现错误后,停止调试,修改相应的代码,即完成此次调试。
单步调试是指程序开发中,为了找到程序的bug,通常采用的一种调试手段,一步一步跟踪程序执行的流程,根据变量的值,找到错误的原因。
解决这个问题的方法如下:
1、首先需要设置断点的那一行代码的最前面点击下,就会出现一个红色的圆球,代表设置断点成功,下图一共设置了4个断点。
2、设置断点完成之后,按下F5,开始断点调试,断点走到的位置,会在红色圆球上添加一个黄色箭头。
3、继续按下F5, 程序会往下执行,走到下一个断点的时候停止。
4、继续按下F5,当设置的断点不满足条件的时候,不会走进去,而是继续执行,跳到下一个断点。
5、另外,当走到某个断点处,可以实时更改当前变量的值。
6、当不需要单步调试的时候,点击下图标示的图标,可以删除所有的断点。
7、删掉之后,红色圆点消失,这样问题就解决了。
#include <stdio.h>#include <string.h>
#include <conio.h>
#define N 100
struct student
{ char XUEHAO[10]
char BANJI[6]
char XINGMING[6]
char XINGBIE[2]
char SHENGRI[8]
char JIGUAN[10]
char XUEYUAN[10]
char TIANHUA[10]
char CLRSCR[8]
}
void CAIDAN()
void LURU()
void SHAXUN()
void sch_XUEHAO(FILE *fp)
void sch_XINGMING(FILE *fp)
void SHANCHU()
void del_XUEHAO(FILE *fp)
void del_XINGMING(FILE *fp)
void TIANJIA()
void XIUGAI()
void XIANZHI()
void TONGJI()
main()
{ char choose,yes_no
do
{ CAIDAN()
printf("\n 请输入序号: (1~8) ")
choose=getch()
switch(choose)
{ case'1': printf(" %c",choose)LURU()break
case'2': printf(" %c",choose)SHAXUN()break
case'3': printf(" %c",choose)SHANCHU()break
case'4': printf(" %c",choose)TIANJIA()break
case'5': printf(" %c",choose)XIUGAI()break
case'6': printf(" %c",choose)XIANZHI()break
case'7': printf(" %c",choose)TONGJI()break
case'8': break
default:printf("\n %c 序号不对!\n",choose)
}
if(choose=='8')break
printf("\n 要继续选择吗 ? (Y/N) \n")
do
{ yes_no=getch()printf(" %c",yes_no)}
while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n')
}while(yes_no=='Y'||yes_no=='y')
}
void CAIDAN()
{ clrscr();就是这里?
printf("\n\n\n")
printf(" **************************************** \n ")
printf(" * 请输入序号: (1~ 8) * \n ")
printf(" * 1------录入学生信息 * \n ")
printf(" * 2------查询学生信息 * \n ")
printf(" * 3------删除学生信息 * \n ")
printf(" * 4------添加学生信息 * \n ")
printf(" * 5------修改学生信息 * \n ")
printf(" * 6------显示学生信息 * \n ")
printf(" * 7------查找同一个学院的人数 * \n ")
printf(" * 8------退出系统 * \n ")
printf(" **************************************** \n ")
}
错误在{ clrscr();
提示:error C2065: 'clrscr' : undeclared identifier
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)