首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于文件的操作!解决思路

2012-03-27 
关于文件的操作!!#includeiostream.h#includestdio.h #includestring.h #defineNUM100typedefstruct

关于文件的操作!!
#include   <iostream.h>
#include   "stdio.h "
#include   "string.h "
#define   NUM   100
typedef   struct   ad_stu
{
char   id[10];
char   name[20];
char   department[10];
}adstu;
int   i=0;
void   d_save(adstu   t_stu[],FILE   *stu)
{
int   ii;
for(ii=0;ii <i;ii++)
{
fwrite(&t_stu[ii],strlen(),1,stu);
}
}

void   main()
{
char   c;
adstu   t_stu[NUM];
FILE   *stu;
while(c!= 'q ')
{
stu=fopen( "c:\\student.txt ", "a+ ");
cout < < "please   input   id " < <endl;
cin> > t_stu[i].id;
cout < < "please   input   name " < <endl;
cin> > t_stu[i].name;
cout < < "please   input   department " < <endl;
cin> > t_stu[i].department;
cout < < "input   choice   (q)uit   or   (c)ontinue " < <endl;
cin> > c;
i++;
}
d_save(t_stu,stu);
fclose(stu);
}
为什么我用文件写入内容但有好多乱码?
我认为我在结构体中定义了数据的大小文件写入时定义的数据大小超过了输入的文件大小系统自动生成了一些乱码。
但我不会解决这个问题,还请哪位大虾指教啊!!

[解决办法]
void d_test(){
char c;
adstu t_stu[NUM];
int count=0;
while(c!= 'q ' && count <NUM)
{
cout < < "please input id " < <endl;
cin> > t_stu[count].id;
cout < < "please input name " < <endl;
cin> > t_stu[count].name;
cout < < "please input department " < <endl;
cin> > t_stu[count].department;
cout < < "input choice (q)uit or (c)ontinue " < <endl;
cin> > c;
count++;
}
FILE *stu = fopen( "c:\\student.txt ", "a+ ");
fwrite(t_stu,sizeof(adstu),count,stu);
fclose(stu);
}
[解决办法]
size_t fwrite(
const void *buffer,
size_t size,
size_t count,
FILE *stream
);

fwrite写的是二进制文件。
你可以采用futs

eg. fputs( "aaaaaaaaaaaaa你好 ",stu);

热点排行
Bad Request.