2 baidu 37263244 baidu_37263244 于 2017.01.05 20:03 提问

c++怎么将一个类的对象数组从文件中读取出出来?

如题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

3个回答

oyljerry
oyljerry   Ds   Rxr 2017.01.05 20:27

需要通过序列化的方式把对象写入文件,然后读出来的时候再序列化回对象。

baidu_37263244
baidu_37263244 具体怎么序列化呢?
一年多之前 回复
VisualEleven
VisualEleven   Ds   Rxr 2017.01.06 11:14

那你需要先知道数据是怎么保存到文件中去的?

shen_wei
shen_wei   Ds   Rxr 2017.01.12 15:45
 struct Student
{
    int nYear;
    char czName[20];
    char czNumber[10];
    char czTel[12];
    int nAge;
    float fScore[5];
}Student[10];


int main()
{ 
    int nCount = 0;
    FILE *fp = fopen("22.txt","rb");
    if(fp == NULL)
    { 
        printf("can not open file!\n");
        exit(0);
    }
    for(int i = 0;i < 100;i ++)
    {
        int nRes = fscanf(fp,"%d %s %s %s %d %f %f %f %f %f",&Student[i].nYear,Student[i].czName,Student[i].czNumber,Student[i].czTel,
            &Student[i].nAge,&Student[i].fScore[0],&Student[i].fScore[1],&Student[i].fScore[2],&Student[i].fScore[3],&Student[i].fScore[4]);
        if (nRes == -1)
        {
            nCount = i;
            fclose(fp);
            break;
        }       
    }

    for (int i = 0;i < nCount;i ++)
    {
        printf("%d %s %s %s %d %.2f %.2f %.2f %.2f %.2f\n",Student[i].nYear,Student[i].czName,Student[i].czNumber,Student[i].czTel,
            Student[i].nAge,Student[i].fScore[0],Student[i].fScore[1],Student[i].fScore[2],Student[i].fScore[3],Student[i].fScore[4]);
    }
    fclose(fp);
    return 0;
}

结构体的数据存储。。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
将文件读取到链表里面
/* * func.c * * Created on: 2012-12-8 * Author: wzm */ #include"head.h" void Init(pList mylist) { mylist->size=0; mylist->head.next=NULL; mylist->head.s=NULL; } int Create(pList mylist
读取文件内容存到数组的具体代码实现
//********************************************************// int edge_num = 1000; int spec = 1000; //表示行数 char * topo[1000];  //将topo赋给buff char ** const buff = topo;      //创建二位数组的形式     char *
从文件中读数据并显示到控制台
package com.lxq_02; import java.io.FileReader; import java.io.IOException; /* * 需求:从文件中读数据并显示到控制台 * 读数据--输入流--FileReader * * FileReader: * FileReader(String fileName):传递文件名称 * * 输入流读文件的步
字符串练习题
#region 练习一             //课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"             string str = "abcefg";             //思路:先将这个字符串转换成数组             char[] chs = str.ToCharArray();             /
将数据从文件中读出并排序
#include #include void read();//显示排序之前的文件 void outfile();//输入到数组中 void sort(int a[], int n);//此处为冒泡排序 int main() { read(); outfile(); return 0; } void read() { printf("after of sort:
黑马程序员-习题练习3
//从文件路径中提取出文件名(包含后缀) 。比如从c:\a\b.txt中提取出b.txt这个文件名出来。         //以后还会学更简单的方式:“正则表达式”,项目中我们用微软提供的:Path.GetFileName();(更简单。)         static void Main(string[] args)         {             string str =
单链表及文件操作 从txt文件中读取数据并自动建立单链表
1、从文本文件中导入班级学生信息:学号、姓名、性别、籍贯 2、将学号重复的删除 3、显示导入的学生信息(文件加后缀) 4、按学号、姓名、性别、籍贯相等和不相等查找 5、多次查找 6、查找结果写入文件 7、VC++6.0编译通过
从文件中读取结构体变量的数据读取和写入结构体数据到文件
#include size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); struct A { int a; int b; c
c/c++--C之从文件流中读写整数
本文将介绍在文本流中,读写整数的两个接口– int getw(FILE *fp)和int putw(int w, FILE *fp),并且与你分享改进后的更实用的接口– unsigned int get_uint(FILE *fp)和unsigned int put_uint(unsigned int i,FILE *fp). 从文件流中读写整数 我们都知道,数据在计算
怎么用c语言实现读取一个txt文件里的数据 要按行读出来
打开文件 fopen("需要打开的路径") 然后使用fgets函数读取行 #include  #include  #include  #define MAX_LINE 1024 int main() {  char buf[MAX_LINE];  /*缓冲区*/  FILE *fp;            /*文件指针*/  int len;             /*行字符个数*/