Keresés

Új hozzászólás Aktív témák

  • Weper

    tag

    Üdv.

    Az lenne a problémám, hogy program 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?

    A feladat leírása: http://prog.hu/tudastar/185858/Binaris+fajl+beolvasasa+objektum+orientaltan.html
    A kolcsonzo.dat az imént belinkelt témához van csatolva.

    #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();
    }

Új hozzászólás Aktív témák