[C++] Base de données

Wazza6 Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   -  
Wazza6 Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai fait une petite classe qui gère la base de données et une fonction qui récupère des données d'une base de données. Voici le code de ma fonction:
entry database::load()
{
	char tmp[1];
	entry data;
	ifstream file(filename, ios::binary);
		if(!file)
			exit(1);
	if(load_amount!=0)
		file.seekg(pos);

	file.read(data.name, 26);               //Name
	file.read(tmp,1);

	//file.read(doublebuff, sizeof(double));  //Amount
	file>>data.amount;
	file.read(tmp,1);
	
	file>>data.cash;   //Cash
	file.read(tmp,1);
	
	file>>data.date;			//Date
	file.read(tmp,1);
	
	file>>data.month;			//Month
	file.read(tmp,1);

	file>>data.year;			//Year
	
	file.read(tmp,1);
	file>>data.type;
	file.read(tmp,1);
	
	pos=file.tellg();
	if(file.eof())
		eof=true;
	load_amount++;
	return data;
}

Ma classe:
class database
{
private:
	const char* filename;
	streampos pos;
	bool eof;
	int load_amount;
	int eof_error;
public:
	database(const char* filename);
	int save(char* name, double amount, double cash, int date, int month, int year, char* type);
	int save(entry data);
	entry load();
	void clear();
	bool is_eof();
	~database();

};


et ma structure(entry)
struct entry
{
	void write();
	char name[26];
	char type[10];
	double amount;
	double cash;
	int month;
	int date;
	int year;
};

Mon problème, c'est que j'ai une fonction qui exécute load jusqu'à ce que db.is_eof() (ou db est un objet de type database) soit vrai. Mais il ne s'exécute toujours qu'une fois. Cela fait environ une semaine que j'essais de trouver le problème mais je ne trouves rien.

Quelqu'un saurait ce qui pourrait être la cause de cette erreure?

P.S. Quand je l'ouvre en debug je remarque souvent que database::pos._MyOff =-1 dès que la boucle s'est exécutée au moins une fois. Et quand j'écris les données j'obtiens
Nom|1|1|10|10|10|TypeNom
A voir également:

1 réponse

Wazza6 Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   40
 
personne?
0