C++从文件里读取对象数组,读不出来。求大神指点

void read()
{

char * stringConvertChar(string str,int len);
ifstream infile("电话本txt", ios::in |ios_base::binary);
if (!infile.eof())
{
for (int j = 0; j < 1; j++)
{
infile.read((char *)(&personArray[j]), sizeof(personArray[j]));
cout << "移动电话:" << personArray[j].getCellTel() << endl;
cout << "家庭电话:" << personArray[j].getHomeTel() << endl;
cout << "办公室电话:" << personArray[j].getOfficeTel() << endl;
cout << "地址:" << personArray[j].getAddress() << endl;
cout << "姓名:" << personArray[j].getName() << endl;
cout << "电子邮箱:" << personArray[j].getEMail() << endl;
cout << "生日:" << personArray[j].getYear() << "年";
cout << personArray[j].getMonth() << "月";
cout << personArray[j].getDay() << "日" << endl;
}
}
}
其中,电话,地址,姓名,邮箱 是char 类型。生日是 int型

第1个回答  2014-07-02
提供一下personArray变量的类定义,估计是使用了string类或是指针定义了
第2个回答  2014-07-01
头文件和声明有吗?追问

都有的,在调试的时候,添加了联系人,存盘后,可以读出来。一旦重新调试的时候,直接选择读取函数读出文件中的数据,就读不出来了。

追答

是不是你数据没有存进去啊?你把你打开的文件用文本的方式打开看看里面有没有数据

本回答被网友采纳

c++ 从二进制文件里 无法读出数据 并显示到屏幕上,求大神解答
string 类并非单纯的char数组,里面有其他C++标准库用来实现string类各种方便功能所需的变量。string类会自己动态分配一块内存用来存储你的信息。这段内存的位置在每次运行程序的时候不同。 你在序列化你的string的时候,他会把string内部记录内存地址变量也序列化。两次运行,如果分配到的动态内存地址不同,...

在C++中 我想从文件中读取数据到数组 可是那个txt文件一直无法成功打 ...
ifstream infile("30stu.txt",ios::in);你这样写是有前提的,就是30stu.txt这个文本文件得与你这个程序在同一个文件下面,如果不在同一个文件夹下面,那你需要注明绝对路径,如:ifstream infile("D:\\新建文件夹\\30stu.txt",ios::in);

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++写程序 读取文件 在屏幕上显示的时候显示不出来...只显示空白!!!
include<string> using namespace std;int main(){ ifstream infile("a.txt");if(!infile) { cout<<"error!"; return -1; } \/\/检查文件是否正确被打开 string line; \/\/每次从文件中读入一行 string result; \/\/将结果存储在该字符串对象中 int i=1;while(getline(infile,line) && i<...

C++:读写数据(.text文件与数组)
在C++中,fstream类提供了对文件进行操作的功能,包括文件的创建、读取和写入。使用这三个类,可以实现对文本文件的操作。创建流对象是第一步。使用ifstream或ofstream时,你需要根据实际需求创建对象。打开文件是紧接着的操作,通过流对象的open()函数实现。你可以选择多种文件打开模式,包括只读、读写、...

C++如何从文件中读取字符串
一般来说在C++语言中读取txt文件的信息有三种方法:1、使用C语言标准文件I\/O中的fopen()、fread()等等函数。示例如下(vc6.0下编译通过):include<stdio.h>FILE*stream;void main(void){long l;float fp;char s[81];char c; stream=fopen("fscanf.out","w+");if(stream==NULL)printf("The...

C++读文件 写入数组问题
上面的那个程序是以字符的形式提取文件数据并显示出来,而且是单字符的形式;下面的那个程序则是以整数形式提取数据,这个当然是有区别的 个人觉得你可以在欲提取的文件中写入整数并以space\/tab等间隔开来试一下,希望对你能够有所帮助~

C++运行出错,求大神帮我看看,无法读取内存是什么意思?要怎么解决啊...
数组越界了。你当前的 l 是-858993460。stu[l] 也就是stu[-858993460];因为数组的下标最小是0,你的这个已经不知道取到的是什么内存了, 所以你这里就会奔溃 在取stu数组的值的时候,最好判断下数组下标的范围。如: if( l >=0 && l < 数组的大小 )

请问C++ 如何从txt文件中读取数据,然后保存在类的数组中?
要声明一个信息(学生)类的数组然后再读文件,读文件大概代码如下:ifstream File_read;while(!File_read.eof()){ File_read>>data[i].num>>data[i].name>>data[i].score;i++;} 数组data是的类型是信息类。自己试试。

在C或C++中可以在文件中读取字符串写入字符串变量或数组吗?
1. 单行存放。student.txt中每行存放一个学生的各项信息,即以换行符为区别各条学生信息。读取的时候从文件中每次提取一行来做属性判断,并筛选;2. tab隔属性。当然也可以以其他符号,但一般来说,在学生信息内容中,一般不会使用table符号,则可以用table符号来在每行学生信息中分隔每项属性(学号、...

相似回答