c语言fwrite写入int问题,怎么解决?
#include
void aaa();
struct student
{
char name[5]; //姓名
int age; //年龄
int num; //学号
char addr[5]; //地址
}stu[4];
void main()
{
int i;
printf("请输入4个学生姓名、年龄、学号、地址,按回车!\n");
for(i=0;i<4;i++)
{
scanf("%s%d%d%s",stu[i].name,&stu[i].age,&stu[i].num,stu[i].addr);
} aaa();
}
void aaa()
{
FILE *fp;
int i;
if((fp=fopen("123.txt","w"))==NULL)
{
printf("无法打开文件!\n");
return;
}
for(i=0;i<4;i++)
{
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
{
printf("写入错误!\n");
}
}
fclose(fp);
}
运行时输入:
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
我把存放到相对路径123.txt但是文件最后显示却是:(int类型是乱码)
1 1 1 1 1 1 1 1
09-01-13 Macy263 发布
楼主这句有问题for(i=0;str[i]!='/0';i++); ,应该为for(i=0;str[i]!='\0';i++); 其他没问题啊。
#include
#include
int main()
{
FILE *fp;
int i;
char path[160],str[500];
int size =0;
printf("输入文件地址或者创建一个新文件:\n");
gets(path);
fp=fopen(path,"a+");
if(fp == NULL)
{
fp=fopen(path,"w+");
if(fp == NULL)
{
printf("文件打开失败。\n");
exit(0);
}
}
printf("请输入文件正文,按回车结束:\n");
gets(str);
for(i=0;str[i]!='\0';i++);
size = fwrite(str,i,1,fp);
if(size!=1) /*为什么不能追加,只能创建?追加写入就错误*/
{
printf("文件写入错误。\n");
exit(0);
}
fclose(fp);
return 0;
}
10-04-11
| 添加评论
| 打赏
◆◆
请登录后再发表评论!
◆◆