怎么用C++语言给txt文件中写入数据?

fp=fopen("Data.txt","a+");
for(i=0;i<n;i++)
{ cout<<setw(10)<<"学号 "<<"姓名 "<<"性别 "<<"年龄 "<<"英语 "<<"数学 "
<<"C 语言 "<<"数据结构 "<<"数据库 "<<endl;
cin>>s[i].num>>s[i].name>>s[i].sex>>s[i].age>>s[i].English>>s[i].math>>s[i].C_language
>>s[i].Data_struct>>s[i].Database;
cout<<endl;

fwrite(&s[i],LENGTH,n,fp);
}
fclose(fp);

这是我编的程序,为什么在运行时写入了n个数据,在再次打开使用的时候,只能找到一个数据呢?

这个fwrite(&s[i],LENGTH,n,fp);
在这里会造成程序错误.因为i是在不停增加的,而写入的块的大小却不变,造成实际上程序访问了越界的数据,估计是写文件出错了.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-10
这种情况应该是和结构体输出是一样的,不能用一个首地址就指望吧整个结构体输出,还是要老老实实的一个个往文件里面写。
第2个回答  2008-11-10
fwrite当遇到'\n'的时候结束。你的结构体指针S[i]的最后就是这个'\n'。
第3个回答  2008-11-10
C++和C都有啊~~强悍,,,,
不过结构一般都是以二进制进行存储的。
相似回答
大家正在搜