保存/读取结构上的字符串

时间:2018-10-14 19:14:42

标签: c++

对于一个学校项目,我必须执行一个程序来保存电影名称和其他详细信息,因此以后我们可以查看或编辑它。 我在上面使用了struct和char变量,并在二进制文件(fwrite)上写入了文件,并且一切正常,但是由于char类型变量的空间有限,因此我想创建相同的程序,但使用字符串而不是char。 / p>

所以我做了一个小程序只是为了测试

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

struct MULTIMEDIA_FILME
{
string nome;
string tipo;
int ano;
string  descricao;
};

int main()
{
using namespace std;
struct MULTIMEDIA_FILME filmes ;

fstream myFile("filme.txt", ios::in | ios::out | ios_base::app);
ofstream filme_txt;
filme_txt.open("filme.txt");

cout << "Nome do filme:" << endl;
cin >> filmes.nome;
filme_txt << filmes.nome << endl;
cout << "Tipo do filme:" << endl;
cin >> filmes.tipo;
filme_txt << filmes.tipo << endl;
cout << "Ano do filme:" << endl;
cin >> filmes.ano;
filme_txt << filmes.ano << endl;
cout << "Descricao do filme:" << endl;
cin >> filmes.descricao;
filme_txt << filmes.descricao << endl;

filme_txt.close();

}

在另一个程序上,我有2个文件,其中1个用于电影计数器(它将保存我拥有的电影数量),另一个文件用于保存名称,类型,年份和说明。 现在我面临的问题是,我如何保存各种电影并在柜台前打电话给他们。 我的想法是每次添加新电影时都使用“ seekg”功能,以便将其写在文件末尾而不替换其他电影。但这是正确的方法吗?关于柜台,我该怎么办呢。 我不想将文件二进制化,以备以后使用。

EDIT1:现在使用ios_base :: app更新了代码,但程序仍未在文件末尾写入。当我添加新项目时,它将替换旧项目。

0 个答案:

没有答案