标题:求教大神????
只看楼主
dwqbcx521
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-12
结帖率:100%
已结贴  问题点数:10 回复次数:31 
求教大神????
这是一个图书录入程序   将其录入到book.txt文件中   编译连接都没有问题    就是运行到一半出问题  求大神修改    谢谢!!!
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define N 100
struct bookinf
{
    char name[20];
    int price1;
    int price2;
    char author[20];
    int year;
    int month;
    int day;
    char number;   
};

void main()
{
    FILE *fp;
    char input;
    int i,n;
    struct bookinf book[N];
    for(i=0;i<=N;i++)
    {
        printf("请输入图书信息(以#结束):\n");
        printf("\n书名:");
        scanf("%s",book[i].name);
        if(strcmp(book[i].name,"#")==0) break;
        printf("\n作者:");
        scanf("%s",book[i].author);
        printf("\n出版年月日(如1993-02-06):");
        scanf("%d-%d-%d",&book[i].year,&book[i].month,&book[i].day);
        printf("\n价格:");
        scanf("%d.%d",&book[i].price1,&book[i].price2);
        printf("\n书号:");
        scanf("%s",book[i].number);
    }
    n=i;
    fp=fopen("book.txt","w");
    for(i=0;i<=n;i++)
    {
        fputs(book[i].name,fp);
        putc(book[i].price1,fp);
        putc(book[i].price2,fp);
        fputs(book[i].author,fp);
        putc(book[i].year,fp);
        putc(book[i].month,fp);
        putc(book[i].day,fp);
        fputs(book[i].number,fp);
    }
    printf("此次共输入%d本书",n);
}
搜索更多相关主题的帖子: bookinf 录入 include number 
2012-06-12 17:19
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
i<=N????

总有那身价贱的人给作业贴回复完整的代码
2012-06-12 17:35
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
得分:10 
原因很简单:   书的序列号  你定义的为 char number;
为一个字符   但是  你输入的时候不是一位  
可以看做  "下标越界"  导致程序崩溃!
你改成 char number[20]; 就OK了!

[ 本帖最后由 icysky 于 2012-6-12 18:00 编辑 ]

不管怎么走、总有一个终点...
2012-06-12 17:35
dwqbcx521
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-12
得分:0 
谢谢大神   可以加你好友么???我正在学c语言   有些问题请您方便的时候解答一下
2012-06-12 19:44
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
没看到i<=N吗?算了,当我没说过

总有那身价贱的人给作业贴回复完整的代码
2012-06-12 20:01
dwqbcx521
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-12
得分:0 
i<=N怎么了??
2012-06-12 20:08
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
得分:0 
应该是i<N, i<=N越界了。
2012-06-12 21:41
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
得分:0 
回复 5楼 embed_xuel
你说的是个BUG  但他测试的时候应该没有触发   
只有输入了101组数据  才能触发   

不管怎么走、总有一个终点...
2012-06-12 22:20
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
你觉得不是问题,不需要改吗?我说错了吗?

总有那身价贱的人给作业贴回复完整的代码
2012-06-12 22:23
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
得分:0 
回复 9楼 embed_xuel
我有说  不是问题吗 ?  
我有说   不需要改吗?

说话能不带火药味么!
借用你的话     算了,当我没说!

不管怎么走、总有一个终点...
2012-06-13 08:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-371400-1-1.html




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

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