对于一个学校项目,我必须执行一个程序来保存电影名称和其他详细信息,因此以后我们可以查看或编辑它。 我在上面使用了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更新了代码,但程序仍未在文件末尾写入。当我添加新项目时,它将替换旧项目。