C语言结构体数组写入文件的问题
展开全部
读的时候
路径不对。。还有就是写入的文件是以字符的形式写入的。所以int型要转一下。。
具体如下
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
struct
node
{
int
a;
char
b[2];
};
main()
{
FILE
*p;
char
ch;
int
i=0,len=sizeof(struct
node);
struct
node
stu[2];
char
temp[2];
for(i=0;i<2;i++)
{
printf("information:\n");
gets(temp);
stu[i].a=atoi(temp);
gets(stu[i].b);
}//输入结构体数组
for(i=0;i<2;i++)
{
printf("%d
%s\n",stu[i].a,stu[i].b);
}//检查是否输入成功
if(stu[0].a>stu[0].a)
printf("A\n");
else
printf("B\n");//判断大小,无关问题
if((p=fopen("d:\\tex.txt","w+"))==NULL)//打开文件
printf("ERROR\n");
else
{
for(i=0;i<2;i++)
{
itoa(stu[i].a,
temp,
10);
//转为字符写入
fwrite(temp,sizeof(temp),1,p);
fwrite(stu[i].b,sizeof(stu[i].b),1,p);
}
}//将结构体写入文件
fclose(p);
if((p=fopen("d:\\tex.txt","r"))==NULL)
printf("ERROR\n");
else
{
while((ch=fgetc(p))!=EOF)
putchar(ch);
fclose(p);
}//输出文件信息
}
ps:读出来的时候也要考虑下,e799bee5baa6e79fa5e98193e78988e69d8331333236393836把他转为整形
路径不对。。还有就是写入的文件是以字符的形式写入的。所以int型要转一下。。
具体如下
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
struct
node
{
int
a;
char
b[2];
};
main()
{
FILE
*p;
char
ch;
int
i=0,len=sizeof(struct
node);
struct
node
stu[2];
char
temp[2];
for(i=0;i<2;i++)
{
printf("information:\n");
gets(temp);
stu[i].a=atoi(temp);
gets(stu[i].b);
}//输入结构体数组
for(i=0;i<2;i++)
{
printf("%d
%s\n",stu[i].a,stu[i].b);
}//检查是否输入成功
if(stu[0].a>stu[0].a)
printf("A\n");
else
printf("B\n");//判断大小,无关问题
if((p=fopen("d:\\tex.txt","w+"))==NULL)//打开文件
printf("ERROR\n");
else
{
for(i=0;i<2;i++)
{
itoa(stu[i].a,
temp,
10);
//转为字符写入
fwrite(temp,sizeof(temp),1,p);
fwrite(stu[i].b,sizeof(stu[i].b),1,p);
}
}//将结构体写入文件
fclose(p);
if((p=fopen("d:\\tex.txt","r"))==NULL)
printf("ERROR\n");
else
{
while((ch=fgetc(p))!=EOF)
putchar(ch);
fclose(p);
}//输出文件信息
}
ps:读出来的时候也要考虑下,e799bee5baa6e79fa5e98193e78988e69d8331333236393836把他转为整形
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询