#include<stdio.h>
#include<string.h>
extern void zengjia(void);
struct book{
int yuwen,shuxue,yingyu;
char xingming[20],xuehao[20];
};
void zengjia(void)
{
char xxx[40];
struct book books;
FILE *fp;
printf("请输入您的学号");
scanf("%s",books.xuehao) ;
strcpy(xxx,books.xuehao);
strcat(xxx,".txt");
printf("请输入您的姓名");
scanf("%s",books.xingming);
printf("请输入您的语数英成绩,中间空格隔开");
scanf("%d %d %d",&books.yuwen,&books.shuxue,&books.yingyu);
if((fp=fopen(xxx,"w+"))==NULL)
printf("文件打开失败");
fseek(fp,0L,SEEK_SET);
printf("%d",fwrite(&books,sizeof(books),1,fp));
}
上面是自定义函数的代码,fwrite返回值也是等于1,但是写入之后文件内没有内容,求大老解决
#include <stdio.h>
#include<stdlib.h>
void zengjia(void);
void shanchu(void);
void xiugai(void);
void chaxun(void);
int main(void)
{
while(1){
printf("请输入需要进行的操作\n1.增加 2.删除 3.修改 4.查询 5.退出");
int a;
scanf("%d",&a);
if(a==1)
zengjia();
//if(a==2)
//shanchu();
//if(a==3)
//xiugai();
//if(a==4)
//chaxun();
//if(a==0)
//exit(1);
else
printf("请重新输入");
}
return 0;
}
这个是main函数,我用的是多文件
但是改写成单文件就可以写入成功
fwrite(books.xingming,sizeof(books.xingming),1,fp)
books.xingming已经是数组了,不用再取地址