C++如何将类写入文件

如题,比如这样
class a
{
int a;
string b;
};
只能一项一项弄进去吗,不能一下子全写入吗?如果只能一项一项的话,求方法~
void writedata(a *h) //把数据存储在文件中
{
FILE *report;
int i;
if((report=fopen("file.txt","w"))==NULL)
{
printf("不能打开文件\n");
exit(1);
}
for(i=0;i<SchoolNum;i++)
fwrite(&h[i],sizeof(school),1,report);
fclose(report);
}
我用这种代码,打开的 txt全是乱码啊

用容器啊,不知道楼主学过没
定义一个容器对象,vector<a> obm
把数据存入容器中

你那个school哪来的啊追问

school打错了,是a,容器能直接写入吗,怎么写啊

追答

嗯,其实就是用容器最好了啊,
void writedata(vector &obm) //把数据存储在文件中
{
a h;
FILE *report;
int i;
if((report=fopen("file.txt","w"))==NULL)
{
printf("不能打开文件\n");
exit(1);
}
for(i=0;i<SchoolNum;i++)
{
fwrite(&h[i],sizeof(a),1,report);
obm.push_back(a);
}
fclose(report);
}

代码大致就是这样的额,你看得懂的话就改改吧,提前是你懂容器怎么用 啊

追问

我用容器这么做了,可是txt文件里还是乱码啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-21
可以全部写入的。追问

求代码啊

【C++】文件写入操作
对于文件写入操作,步骤包括:1. 包含头文件,定义用于处理输出的类。2. 声明一个或多个对象,名字任意(符合命名规则)。3. 使用using语句或前缀std引用ofstream等元素。4. 使用open方法将ofstream对象与文件关联。5. 结合使用ofstream对象和左移运算符<<进行输出。6. 使用close()方法关闭文件。下面是...

C++读取文件和写入文件内容实例详解
写入文件内容则创建ofstream对象,同样传入文件名,使用插入操作符(<<)写入数据。关闭文件以确保写入完成。对于二进制文件,使用fstream类的read()和write()函数进行读写操作。创建二进制文件,使用ofstream写入数据,ifstream读取数据并输出。本文详述了C++读写文件内容的方法,涵盖文本文件和二进制文件。通过...

C++ 怎样把运行得到的数据写入文件?如何保存?
首先你要创建一个文本文件,然后用函数打开,写入就行了\\x0d\\x0a下面是我回答别人问题的一个代码,有写入文件的操作,希望对你有用。\\x0d\\x0ainclude \\x0d\\x0a#include \\x0d\\x0aclass dog\\x0d\\x0a{\\x0d\\x0apublic:\\x0d\\x0aint weight;\\x0d\\x0aint age;\\x0d\\x0adog()\\x0d\\x...

c语言怎么将数据写入文件?
利用VC软件通过代码书写就可以将数据写入文件。首先打开VC++6.0。选择文件,新建。选择C++ source file 新建一个空白文档。先声明头文件#include <stdio.h>。写上主函数 void main 主要代码 FILE *infile,*outfile,*otherfile;char input;char inputs[10];int i=0;infile = fopen("d:\\\\infile.t...

C++中,把一个map容器对象写到文件上并能读取,如何实现
楼主您好,通常有两个常见方法来完成:1.将map遍历,取出其中的所有key-value对,按照一定格式写入文件,读取时,按照指定的格式反写回去即可,可以选择自定义读写类,或者重载>>、<<运算符来完成。2.使用boost的序列化库(不是很方便)注:由于含有动态信息,map、vector等容器都不可以直接序列化写入...

c\/c++ 如何将一个int型以字符串的形式写入文件
include "stdio.h"main(){ int x;x=1234;FILE *fp;fp=fopen("filename.txt", "a");fprintf(fp,"%d\\n",x); \/\/fprintf的用法和printf的用法基本一样,只是多了一个参数:指向你要写入的文件的指针。fclose(fp);return 0;}

c++ 如何 把信息追加写入txt
用fopen("文件名及路径","a+");打开,然后用文件操作函数写入就可以了啊,关键是"a+"这里.

C++怎么把程序输出的数据写入txt文档中
功能:简单说,就是实现重定向。把预定义的几个标准流文件(stdin, stdout, stderr)定向到由path指定的文件中。在主函数最开头写 freopen("1.txt","w",stdout);主函数结尾(return 0前)写上 fclose(stdout);用文件输入数据也是同理的 例子:include<iostream>#include<cstdio>int main() { ...

C++把程序中产生的数据写到文件里保存下来怎么办?
using namespace std;int main(){ cout << "请输入内容" << endl;string line;cin >> line; \/\/得到内容,比如我这里用line储存要写入文件的内容。ofstream fout("output.txt"); \/\/申明一个文件输出流,我的文件输出流的指针名字是fout,也可以是别的。括号里面是文件的路径。if(!fou...

如何用C++将大量的数据写入文件
执行程序时,让输出 转向到数据文件 即可。例如程序名 rl.exe, 数据文件名 rl.txt 运行时打命令:rl.exe >> rl.txt 即可 --- 当然,你可以用fopen 和 fprintf:FILE *fout; \/\/ 声明为全局量 fout = fopen("rl.txt","r"); \/\/ main() 里 fopen 所有的 打印日历 printf 改 fprintf(...

相似回答
大家正在搜