| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2044 人关注过本帖
标题:新人求助,检查了两个小时了!
取消只看楼主 加入收藏
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
新人求助,检查了两个小时了!
int save(int g)//数组大小
{
    int i;
    FILE *fp;
    if((fp=fopen("St.dat","wb")==NULL))
    {
        printf("无法打开此文件!\n");
        return;
    }
    for(i=0;i<g;i++)
    {
        if(fwrite(&St[i],sizeof(struct Staff),1,fp)!=1)
        printf("文件出错!");
    }
    fclose(fp);
}
这是一个存储数组的函数
运行以后,出错。
调试,停在这儿if(fwrite(&St[i],sizeof(struct Staff),1,fp)!=1)
谁能告诉我问题啊!
搜索更多相关主题的帖子: return 
2017-06-13 10:34
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
收藏
得分:0 
回复 2楼 renkejun1942
这是一个数组,已经定义过了。
struct Date
{
    char Month[3];
    char Day[3];
    char Year[5];
};
struct Staff
{
    char No[6];/*职工号*/
    char Name[10];/*姓名*/
    int Sex;/*性别*/
    struct Date Birthday;/*出生年月*/
    char Education[10];/*学历*/
    char Duty[10];/*职务*/
    int Salary;/*工资*/
    char Address[10];/*住址*/
    char Tel[12];/*电话*/
    /*其他*/
}St[2000];
2017-06-13 10:38
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
struct Date
{
    char Month[3];
    char Day[3];
    char Year[5];
};
struct Staff
{
    char No[6];/*职工号*/ 
    char Name[10];/*姓名*/ 
    int Sex;/*性别*/ 
    struct Date Birthday;/*出生年月*/ 
    char Education[10];/*学历*/ 
    char Duty[10];/*职务*/ 
    int Salary;/*工资*/ 
    char Address[10];/*住址*/ 
    char Tel[12];/*电话*/ 
    /*其他*/
}St[2000];
int initial()/*读文件记录到数组,同时记录文件记录个数*/
{
    int i=0,j;
    FILE *fp;
    if((fp=fopen("St.dat","rb"))==NULL)
    {
        printf("不能打开文件\n");
        exit(0);
    }
    i=0;
    while(1)
    {
        fread(&St[i],sizeof(struct Staff),1,fp);
        if(!feof(fp))
        {
            /*printf("%10d%10s%2d%5d%3d%3d%10s%10s%8s%10s%15s",St[i].No,St[i].Name,St[i].Sex,
             St[i].Birthday.Year,St[i].Birthday.Month,St[i].Birthday.Day,
             St[i].Education,St[i].Duty,St[i].Salary,St[i].Address,St[i].Tel);*/
            i++; 
        }
        else break;
    }
    fclose(fp);
    return(i);
} 
int save(int g)
{
    int i;
    FILE *fp;
    if((fp=fopen("St.dat","wb")==NULL))
    {
        printf("无法打开此文件!\n");
        return;
    }
    for(i=0;i<g;i++)
    printf("%-6s%-10s%-2d%-5s%-3s%-3s%-10s%-10s%-7d%-10s%-12s\n",St[i].No,St[i].Name,St[i].Sex,
             St[i].Birthday.Year,St[i].Birthday.Month,St[i].Birthday.Day,
             St[i].Education,St[i].Duty,St[i].Salary,St[i].Address,St[i].Tel);
    /*for(i=0;i<g;i++)
    {
        if(fwrite(&St[i],sizeof(struct Staff),1,fp)!=1)
        printf("文件出错!"); 
    }
    fclose(fp);*/
    for(i=0;i<g;i++)
    {
        if(fwrite(&St[i],sizeof(struct Staff),1,fp)!=1)////////我会出问题!!!!!!
            printf("文件出错!\n");
    }
    fclose(fp);
}
int main()
{
    int k;
    k=initial();
    save(k);    
}

这是一段测试代码,还是在同样的地方出问题。

[此贴子已经被作者于2017-6-13 10:46编辑过]

2017-06-13 10:43
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
收藏
得分:0 
等等我去运行一下。

[此贴子已经被作者于2017-6-13 10:50编辑过]

2017-06-13 10:48
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
收藏
得分:0 
哇,自己看了3个小时,大神,膜拜。
2017-06-13 10:53
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
收藏
得分:0 
厉害,谢谢!
2017-10-29 15:13
ssl002
Rank: 2
等 级:论坛游民
威 望:2
帖 子:75
专家分:43
注 册:2017-6-13
收藏
得分:0 
回复 10楼 renkejun1942
厉害,谢谢!
2017-10-29 15:13
快速回复:新人求助,检查了两个小时了!
数据加载中...
 
   



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

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