在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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询