C++ bináris fájlbekérés probléma?
Az lenne a problémám, hogy objektum orientált programozásnál a Visual Studioban meg kellene nyitni 1 bináris fájlt és az adatait be kellene olvasnom egy "kolcsonzo" típusú tömbbe. Az lenne a gondom, hogy a while(!be.eof) résznél a végtelenségig megy. Valaki nem tudja mi a probléma?
Feladat leírása: [link]
Szükséges fájl a beolvasáshoz: [link]
A program forráskódja, ameddig eljutottam:
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
struct kolcsonzes
{
char datum[12]; //a kölcsönzés napja
char tipus[20]; //a kerékpár típusa
int sorszam; //a kerékpár sorszáma
int ido; //a kölcsönzés ideje
};
class kolcsonzo
{
private:
kolcsonzes *k;
int db;
public:
kolcsonzo();
void Kiiras();
int Getdb() { return db; };
//int GetMagellan( return )
};
kolcsonzo::kolcsonzo()
{
db = 0;
ifstream be("kolcsonzo.dat", ios::binary);
if (be)
{
while (!be.eof())
{
db++;
k = new kolcsonzes[db];
if (k)
{
be >> k[db - 1].datum[12];
be >> k[db - 1].tipus[20];
be >> k[db - 1].sorszam;
be >> k[db - 1].ido;
cout << db << ". adat: " << k[db - 1].datum[12] << endl;
cout << db << ". adat: " << k[db - 1].tipus[20] << endl;
cout << db << ". adat: " << k[db - 1].sorszam << endl;
cout << db << ". adat: " << k[db - 1].ido;
}
else
{
cerr << "Kevés a memória!" << endl;
}
}
}
else
{
cerr << "Nincs ilyen fájl!" << endl;
}
be.close();
cout << db;
}
void kolcsonzo::Kiiras()
{
for (int i = 0; i < db; i++)
{
cout << i+1 << ". adat: " << k[i].datum << endl;
cout << i + 1 << ". adat: " << k[i].tipus << endl;
cout << i + 1 << ". adat: " << k[i].sorszam << endl;
cout << i + 1 << ". adat: " << k[i].ido;
}
}
void main()
{
setlocale(LC_ALL, "HUN");
kolcsonzo a;
a.Kiiras();
_getch();
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!