Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

cannot convert parameter 1 from \'banka\' to \'char *\' - ne razumijem

[es] :: C/C++ programiranje :: C/C++ za početnike :: cannot convert parameter 1 from \'banka\' to \'char *\' - ne razumijem

[ Pregleda: 3246 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

brankec
Bosanski Brod

Član broj: 140157
Poruke: 161
*.teol.net.



Profil

icon cannot convert parameter 1 from \'banka\' to \'char *\' - ne razumijem27.12.2008. u 18:35 - pre 194 meseci
Namera mi je da pročitam DBF fajl (banka.dbf) pa sam napisao dole navedeni početnički program. Međutim prilikom kompajliranja javlja mi sledeću grešku koju ne razumem:

Error 1 error C2664: 'std::basic_istream<_Elem,_Traits>::read' : cannot convert parameter 1 from 'banka' to 'char *' c:\Documents and Settings\Branko\My Documents\Visual Studio 2005\Projects\BankaDBF\BankaDBF\BankaDBF.cpp 42

Moze li mi neko reći šta ta greška znači i kako da to rešim.

Inače, namera mi je napisati kod koji će učitati podatke iz određene DBF baze, obraditi te podatke i snimiti ih u TXT fajl (ne ulazim u to zasto mi je to potrebno). Međutim, ne mogu naći nigde pojašnjenja ili primer koda kojim bi lakše svario tu materiju. Imam puno više iskustva u rešavanju matematičkih problema, ali sam slab kad su u pitanju fajlovi i njihova obrada.

Unapred hvala.

Code:

// Pokusaj

#include <iostream>
#include <iomanip>
#include <fstream>

using namespace std;

class banka
{
public:
    char radnik[6];
    char saldo[14];
    char tekrac[17];
    char prezime[30];
    char bank[6];
    char rj[5];
    char nazban[30];
    char net[14];
    char odb[14];
    char zr[45];
    char aktiv;
    char godmesbroj[8];
    char jmbg[13];
};

int main()
{
    char ime[81];
    long brojac=0;
    banka banka1;
    cout << "UNESI IME DATOTEKE:" << endl;
    cin >> ime;
    ifstream fin(ime, ios::in | ios::binary);
    if (!fin)
    {
        cout << "Datoteka nije mogla da se otvori." << endl;
        return 1;
    }
    do
    {
        fin.read(banka1, sizeof(banka));
        ++brojac;
    } while (!fin.eof());
    return 0;
}
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: cannot convert parameter 1 from \'banka\' to \'char *\' - ne razumijem28.12.2008. u 03:37 - pre 194 meseci
IO funkcije prihvataju kao argument vise tipova podataka ... ali tvoju klasu ne poznaju :).
Ispod imas primer za to sto ti treba. Nacin citanja i upisa zavisi od tipa podatka koji je prosledjen.
poz
Code:

#include <iostream>
#include <iomanip>
#include <fstream>

using namespace std;

class banka
{
public:
    char radnik[6];
    char saldo[14];
    char tekrac[17];
    char prezime[30];
    char bank[6];
    char rj[5];
    char nazban[30];
    char net[14];
    char odb[14];
    char zr[45];
    char aktiv;
    char godmesbroj[8];
    char jmbg[13];

    int testint;
};

int main()
{
    char ime[81];
    long brojac=0;
    banka banka1;
    cout << "UNESI IME DATOTEKE:" << endl;
    cin >> ime;
    ifstream fin(ime, ios::in | ios::binary);
    if (!fin)
    {
        cout << "Datoteka nije mogla da se otvori." << endl;
        return 1;
    }
 //   do
 //   {
//        fin.read(banka1, sizeof(banka));
 //       ++brojac;
//   } while (!fin.eof());

    if(fin.good())
    {
        fin >> banka1.radnik; // cita sledeci string
        ++brojac;
        cout << brojac << " " << banka1.radnik << endl; // debug
    }

    if(fin.good())
    {
        fin >> banka1.prezime;
        ++brojac;
        cout << brojac << " " << banka1.prezime << endl; // debug
    }

    // itd.
    if(fin.good())
    {
        fin >> banka1.testint; // ovako se cita int , ako je doslo do greske funkcija good posle ovog vraca 0
        ++brojac;
        cout << brojac << " " << banka1.testint << endl; // debug
    }

    fin.close();

    //ovako se upisuje
    strcat(ime,"out.txt");

    ofstream fout(ime, ios::out | ios::binary);

    if (fout)
        if(strlen(banka1.radnik))
            fout << banka1.radnik;

    if (fout)
        fout.close();

    return 0;
}


[Ovu poruku je menjao Eurora3D Team dana 29.12.2008. u 00:38 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: cannot convert parameter 1 from \'banka\' to \'char *\' - ne razumijem

[ Pregleda: 3246 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.