| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4346 人关注过本帖
标题:请问一下 C程序 没有bug 但是运行的时候 出现结束程序 是程序有问题吗?
只看楼主 加入收藏
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
另外你的main函数中,定义的//char no[7];注释掉,因为你已经定义了全局变量了。否则全局变量没有效

程序代码:
void Check_score()
{
    FILE *f;
    int a;
    float b;
    char no2[7];
    f = fopen("record.txt", "r+");
    if (f == NULL)
    {
        printf("sorry to fail to open record.txt,exit now.");
        return;
    }
    printf("your previous records are:\n");
    while (fscanf(f, "\n%s  %3d  %f", no2, &a, &b) != EOF)    //我的IDE不支持%.2f
    {
        if (strcmp(no, no2) == 0)
            printf("\n%s  %3d  %.2f", no, a, b);
    }

    fclose(f);
    system("pause");
}
2016-06-24 17:45
time1609
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:59
专家分:118
注 册:2016-5-10
收藏
得分:3 
你可以尝试在觉得有问题的地方输出一句字符串,不要急着关闭程序,看看输出先方便定位错误点。另外可以试试设置断点。


2016-06-24 21:28
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
收藏
得分:0 
回复 11楼 grmmylbs
已经照着改了,那部分为什么要加 &  ,而后面就不需要啊。。而且还是老退出程序,是不是cfree的问题啊?
2016-06-24 23:08
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
收藏
得分:0 
回复 12楼 time1609
不是我要关程序,是电脑直接无法运行这个程序,弹出一个框
2016-06-24 23:09
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:3 
想不出来就调试,一般出现这种问题都是少了一个符号之类的,当调试到那一步的时候会出错,就知道在哪一行出错了

好好学习,天天向上!
2016-06-25 00:19
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
收藏
得分:0 
回复 15楼 未来大仙
我不会调试啊
能教教我吗

关键是它没有bug 不能运行
2016-06-25 00:34
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:3 
不会调试没关系,教你一个小办法,每一个功能代码段用printf("*"):就是知道是那一段出问题了。
2016-06-25 06:39
惧惧
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2016-6-19
收藏
得分:0 
回复 17楼 linlulu001
主要是我的程序运行到一半的时候 就自己中断,,有时候能运行好久 有时候只有一小会儿。。
2016-06-25 07:52
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
用printf("*");看看是哪里程序就崩了。这样就知道是哪一段出问题了。
编译器没提示说明你的语法没有错,有错的无非就是算法或者是细节出现本不应该出现的错误。
2016-06-25 09:31
time1609
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:59
专家分:118
注 册:2016-5-10
收藏
得分:0 
就个人经验而言这种运行中的问题,多半是在某个地方出现了溢出,访问非法地址等问题.这种问题在编译阶段很难发现,运行时就会出现问题。
给个例子:如果不懂用断点的话
int mian(int *argc,char*argc[])
{
puts("1");  
你的代码;
puts("2");
你的代码;
puts("3");
你的代码:
……
}
运行时你看看运行到什么地方会卡死,这样就能确定哪个部位的代码有问题了。
断点的话,如果你用的IDE时微软的VS系列,只需鼠标要定位到要断点的那行代码,然后按F9,然后那行代码前面会出现一个大红点,然后按F5编译运行,代码运行到断点那里就会暂停,这个时你看菜单栏原来的运行按钮变成了继续按钮,点继续或者按F5就能继续往下运行了,用个几次就会了。不确定问题的代码可以多设置几个断点。

如果时其他的IDE的话,一般都会有右键菜单插入断点的,或者至少在菜单栏里面能找到,用法大同小异。


2016-06-25 09:36
快速回复:请问一下 C程序 没有bug 但是运行的时候 出现结束程序 是程序有问题吗 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016986 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved