在C++中怎么实现对结构体数组的数据保存,和对保存数据的读取?

就是保存到TXT或者其它格式的文本中去,和把文本中的数据读取到结构体中,有办法吗?我用得是VS2010... 就是保存到TXT或者其它格式的文本中去,和把文本中的数据读取到结构体中,有办法吗?我用得是VS2010 展开
 我来答
轩逸一
推荐于2016-02-06 · TA获得超过357个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:147万
展开全部
#include<iostream>
#include<cstdio>
#include<cstdlib>

using namespace std;

struct st{
int a,b;
}e[10000];

int main(){ // 输入所用的TXT都在 程序的同一个目录下。
FILE *fp;
char ch,filename[20];
printf("请输入所用文件名\n");
cin>>filename;
if((fp=fopen(filename,"r"))==NULL){ //
printf("无法打开文件\n"); //此段是标准打开格式,fopen(“文件名.txt“,"r"表示对这个文件时只读形式)
exit(0); //如果打开错误,异常处理。
}
int i=0;
while(fscanf(fp,"%d%d",&e[i].a,&e[i].b)!=EOF){ //用fscanf读取文件里面的信息,跟scanf的区别是第一个参数是文件指针。
i++; //EOF是文件结尾标志
}
for(int k=0;k<i;k++){
printf("%d %d\n",e[k].a,e[k].b);
}
fclose(fp); //关闭文件
printf("请输入输出所用文件名\n");
cin>>filename;
if((fp=fopen(filename,"w"))==NULL){ //唯一不同 是打开的模式是"w"只写模式。
printf("无法打开文件\n");
exit(0);
}
for(int k=0;k<i;k++)
fprintf(fp,"%d %d\n",e[k].a,e[k].b); //用fprintf 输出信息。
fclose(fp);
return 0;
}
追问
可以是C++的吗?我没学过C语言
追答
那么你可以看一下这篇文章,因为我对C++也不是很熟,不能随便写,希望能帮到你。
http://wenku.baidu.com/view/b8da7adaa58da0116c1749f3.html
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友aa255ab
2013-06-18
知道答主
回答量:7
采纳率:0%
帮助的人:3.7万
展开全部
用ini文件保存结构体中的每个变量值或者用CFile 类进行行保存,如果不要求用文本文件的话还可以直接序列化到二进制文件中,当需要读取时再进行反序列化就可以了
追问
能和我具体说说吗?我才学C++一个学期,很多不懂的。有代码什么的就更好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式