求问C++,想从文件里读出数据并把数据存到对象数组里,有可能实现吗??

想用fgets函数,但是不知道为什么报错,求大佬帮忙,谢谢啦

p是一个Person类的数组,fgets只能读入到char*中,而不存在Perosn类到char*型的转换,所以报错。使用fgets读入一行数据到某个自定义的字符缓冲区中,然后再将缓冲区中的数据赋值给Person类中相对应的变量。追问

怎么读入到自定义的字符缓冲区呀??

追答

char buf[100];
fgets(buf, 100, fp);

追问

然后又怎么赋值呀??麻烦你了

追答

假如你的文件中每一行以年 月 日的格式记录三个整数,那么可以用fscanf分别读入这三个整数,然后使用setter函数将它们赋值给类的成员变量。

int yy,mm,dd;
for(int i=0;i<10;i++)
{
    fscanf(fp,"%d%d%d",&yy,&mm,&dd);
    p[i].SetYear(yy);
    p[i].SetMonth(mm);
    p[i].SetDay(dd);
}

追问

好哒,谢谢啦

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-01
有加主函数吗追问

有的,第四张图里

追答

哦,哪我就不知道了,对不起啊o((>ω< ))o

追问

哈哈,没事儿没事儿

C++怎么把文件中的数据读入到对象数组中呢?
对象私有数据成员的赋值需要通过公有成员函数,为了简单些、偏C语言些,进行了简化,参考代码如下:include "stdio.h"class consumer{ public:char num[10];char passwd[10];float money;} t,c[5];int main(){ FILE *fp;int i;fp=fopen("consumers.data","wb");if(fp==NULL) { printf("...

请问C++ 如何从txt文件中读取数据,然后保存在类的数组中?
File_read>>data[i].num>>data[i].name>>data[i].score;i++;} 数组data是的类型是信息类。自己试试。

C++从字符串中提取数字并保存在数组中
首先,我们需要移除字符串中的非数字字符,也就是去除字母和特殊符号,确保仅保留数字和空格。接着,移除换行符,以保持数据的一致性。随后,通过空格将字符串分割,将原始字符串分为多个部分。这样做的目的是将数字单独分离出来。最后一步,将分割得到的字符串部分转化为数字。通过遍历这些字符串,我们可以...

C++ 从TXT文件中读取数据存到数组中??你是怎么解决的谢谢
文件中读取数据存到数组中的命令:include <fstream> void main()nclude <stdio.h> include <math.h> define MaxLength { int a[10];ifstream fin("D:\/我的输入文件.txt");for(int i=0;i<10;i++)fin>>a[i];for(int i=0;i<10;i++)cout<<a[i]<<endl;ofstream fout("D:\/我的...

如何用C++对一个文本文档里面的许多数据进行逐行读取,并放入数组中
推荐使用文件流来读取。如果你的数据是用空格、制表符和换行符来分隔的,那么程序可以写的很简单。直接逐行用fin就可以了。如果你的数据是用逗号或者其他字符来分隔,用换行来分行的,那么你需要在循环中写入两次读入,第一次用于读入数据,第二次用于跳过字符。如果数据中间的分隔字符是不规范、不一致、...

C++如何在文件中读取数据,然后保存在一个数组中
using namespace std;void main(){ int s[5][2];ifstream fin("a.txt");int x;fin>>x;for(int i=1;i<x;i++){ for(int j=1;j<2;j++){ fin>>s[i][j];} } ofstream fout("input.txt");fout<<x;for(int k=1;k<k;k++){ for(int t=1;t<2;t++){ fout<...

C++中如何从文件中读取数据给整形数组数据
using namespace std;int main(){ char filename[20];int a[3][3]; \/\/存储整数 cin >> filename;ifstream ifile(filename,ios_base::in);if(ifile) \/\/文件打开成功 { for(int i=0;i<8;i++) \/\/读入八个整数 ifile>>a[i\/3][i%3];} else { cout << "open file f...

C++编程读取TXT数据,将其赋值到数组,而后进行计算
include <iostream>#include <cstdio>#define maxn 10000using namespace std;struct m{ int x; int y; int z;}a[maxn];int main(){ freopen("\/*文件名*\/","r"\/*代表读取*\/,stdin);\/\/从此以后所有读取都会从此文件读 for(int i=0;i!=maxn;i++){ cin>>a[i]...

用vc++逐行读取文本文件txt里面的数据,并且复制给数组
include<stdlib.h> define MAX 20000 char *srcfile = "data.txt";\/\/文件名 int data[MAX][8];int main(){ FILE *src = fopen(src,"r");int i,j;for(i = 0;i < MAX;i++){ fscanf(srcfile,"%d,%d,%d,%d,%d,%d,%d,%d",&data[i][0],&data[i][1],&data[i][2],&...

C++ 怎样从TXT文件中读取数据存到结构体数组中
首席需要用到fstream头文件,然后用ifstream就可以了。我给LZ写一个例子,lz看一下就明白了:strcut stockType { string personAddress;string personCity;string personState;int personZIP;};void addressType :: getData(){ ifstream infile;int index;string inputFile;stockType addressTypeList[NO_OF...

相似回答