标题:关于文件的问题,一录入就出错
只看楼主
蔡伟超
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-11-13
结帖率:80%
已结贴  问题点数:15 回复次数:4 
关于文件的问题,一录入就出错
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100

void make();


struct student
{
    char number[12];
    char name[20];
    char sex[20];
    int age;
    char addr[50];
    char phone_number[11];
}stud[N];

void make()
{
    int i,n;
    struct student *ptr;
    FILE *fp;
    if((fp=fopen("test.txt","wb+"))==NULL)
    {
        printf("can't open this file\n");
        exit(0);
    }
    printf("请输入要录入的人数:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("学号:");
        scanf("%s",stud[i].number);
        printf("姓名:");
        scanf("%s",stud[i].name);
        printf("性别:");
        scanf("%s",stud[i].sex);
        printf("年龄:");
        scanf("%d",&stud[i].age);
        printf("宿舍:");
        scanf("%s",stud[i].addr);
        printf("电话号码:");
        scanf("%s",stud[i].phone_number);
        printf("创建成功!\n");
        if(fwrite(ptr++,sizeof(struct student),1,fp)!=1);
        {
            printf("error!\n");
        }
        fclose(fp);
    }
}这是一个子函数,求帮忙看看
搜索更多相关主题的帖子: include number file 
2016-11-27 11:00
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:10 
发现三个问题:
1:ptr没有指向(赋初值)//ptr=&stud[0];//ptr指针要有指向内容
2:if(fwrite(ptr++,sizeof(struct student),1,fp)!=1);多了个分号
3:fclose(fp);写到循环体里面了

就这样吧~再试试看~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-27 11:43
蔡伟超
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-11-13
得分:0 
回复 2楼 九转星河
谢谢大佬,这个子函数没问题了,但是,我还想再创一个子函数,可以随时再添加信息,怎么打那个代码
2016-11-27 13:33
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:5 
如果想插入添加则比较麻烦,就数组中插入元素一样(当然,能力够的可以用链表),在末尾添加则相对来说会简单很多,把文件指针移到尾部写数据就行了。
(我书上也有这样一道插入问题,说要先排序再插入,应该用的是数组排序)。
如果觉得麻烦的话,可以先读取里面的全部信息,把它们拿出来插入后再重新读入磁盘里面。

子函数自己慢慢琢磨一下应该能够写得出来的,都是比较基础的东西~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-27 18:04
蔡伟超
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-11-13
得分:0 
回复 4楼 九转星河
谢谢
2016-11-27 23:20



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




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

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