在C++中怎么实现对结构体数组的数据保存,和对保存数据的读取?
就是保存到TXT或者其它格式的文本中去,和把文本中的数据读取到结构体中,有办法吗?我用得是VS2010...
就是保存到TXT或者其它格式的文本中去,和把文本中的数据读取到结构体中,有办法吗?我用得是VS2010
展开
2个回答
展开全部
#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;
}
#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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询