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

Binarne datoteke

[es] :: C/C++ programiranje :: Binarne datoteke

[ Pregleda: 4103 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dulleo

Član broj: 65224
Poruke: 15
*.smin.sezampro.yu.



Profil

icon Binarne datoteke06.02.2007. u 22:13 - pre 209 meseci
Potrebne su mi tri binarne datoteke;u 1. smestam m (int) nizova od po n elemenata; u 2. smestam one nizove koji imaju srednju vrednost > od 0; u 3. sve ostale nizove..
Sta ne valja u sledecem kodu, jer nece da mrdne dalje od otvaranja datoteka?
Koristim Dev-C++ 4.9.9.2

Code:
#include<iostream>
#include<fstream>
#include<cstdlib>
#define MAX1        20
#define MAX2        100
using namespace std;
void prikaz(int *niz, int m, int n, int rbr);
fstream f1, f2, f3;
main()
{
    int *niz, n, m, i, j, srednja, rbr, m2=0, m3=0;
    char ime1[MAX1+1], ime2[MAX1+1], ime3[MAX1+1];
    
    cout << "\nUnesite ime binarne datoteke: ";
    cin >> ime1;
    cout << "\nIme datoteke sa zapisima u kojima ";
    cout << "je srednja vrednost niza veca od 0: ";
    cin >> ime2;
    cout << "\nUnesite ime datoteke sa ostalim zapisima: ";
    cin >> ime3;
    
    f1.open(ime1, ios_base::binary | ios_base::out | ios_base::in);
    f2.open(ime2, ios_base::binary | ios_base::out | ios_base::in);
    f3.open(ime3, ios_base::binary | ios_base::out | ios_base::in);
    
    if(!f1 || !f2 || !f3)
    {
        cerr << "\nNe mogu da napravim datoteke" << endl;
        system("pause");
        exit(1);
    }
    
    do
    {
        cout << "\nUnesite broj nizova i broj elemenata niza: ";
        cin >> m >> n;
        cin.ignore();
    }while(m<1 || m>MAX2 || n<1 || n>MAX2);
    
    niz=new int[n];
      ....itd....

Puno hvala
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.metrored.net.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Binarne datoteke07.02.2007. u 13:18 - pre 209 meseci
Ovaj kod je čudna mešavina C-a i C++. Ako koristiš standardnu biblioteku onda je koristi u potpunosti.

Zasto ovo?
Code:
char ime1[MAX1+1], ime2[MAX1+1], ime3[MAX1+1];


Bolje je ovako:
Code:
std::string ime1, ime2, ime3;


Tako da onda ovaj kod
Code:
    
    f1.open(ime1, ios_base::binary | ios_base::out | ios_base::in);
    f2.open(ime2, ios_base::binary | ios_base::out | ios_base::in);
    f3.open(ime3, ios_base::binary | ios_base::out | ios_base::in);


Postaje:
Code:
    
    f1.open(ime1.c_str(), ios_base::binary);
    f2.open(ime2.c_str(), ios_base::binary);
    f3.open(ime3.c_str(), ios_base::binary);


jer ios_base::out | ios_base::in se podrazumeva za fstream.

Dalje:
Code:
niz=new int[n];


Ima li razlog za ovo? Ako se radi samo o običnom nizu nije li bolje ovo:
Code:
std::vector<int> niz(n);


A šta tačno znači to "neće da mrdne dalje"? Gde tačno zaglavi?


Tko leti vrijedi
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.adsl.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: Binarne datoteke07.02.2007. u 15:40 - pre 209 meseci
Citat:
kiklop74: Ovaj kod je čudna mešavina C-a i C++. Ako koristiš standardnu biblioteku onda je koristi u potpunosti.

C++ je C i momak koristi sve sto je u standardu.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.55.*



+9 Profil

icon Re: Binarne datoteke07.02.2007. u 15:54 - pre 209 meseci
Citat:
NrmMyth: C++ je C i momak koristi sve sto je u standardu.


Prije svega, C++ nije C. Isto tako, koliko citam ovaj forum ti samo znas spomenuti standard kad nemas pojma kud bi se okrenuo. Nije sve u njemu, već i u principima programiranja. Ako si već krenuo da na jedan način rješavaš stvar onda se toga i drži. Takvo kupusarenje po programskom kodu možeš samo kod svoje kuće raditi, a na nečemu ozbiljnom ni slučajno. Stoga, već od samih početaka treba se učiti nekim pravilima. Šta ti vrijedi standard kad ti kod ne liči ni našto, a pogotovo kad se netko normalan sjedne pred to da bi to pokušao eventualno održavati ili ispraviti neke greške?
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.adsl.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: Binarne datoteke07.02.2007. u 20:19 - pre 209 meseci
Citat:
itf: Prije svega, C++ nije C.

Lapsus, znas sta sam mislio.

Citat:
Isto tako, koliko citam ovaj forum ti samo znas spomenuti standard kad nemas pojma kud bi se okrenuo.

Slobodno me citiraj.

Citat:
Nije sve u njemu, već i u principima programiranja.

Nigdje u onih 11 rijeci ja to ne osporavam.

Citirao sam neispravnu recenicu koji sam zatim komentirao, mislim da ne moram puno objasnjavati, samo procitaj jos jednom.


Imam osjecaj da je ovo nesto osobno, zasto?

 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.iplannetworks.net.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Binarne datoteke07.02.2007. u 20:55 - pre 209 meseci
Citat:
NrmMyth: C++ je C i momak koristi sve sto je u standardu.


Ja sam govorio o standardnoj C++ biblioteci a ne o C ili C++ standardu. Ono sto sam rekao je da je konzistentnost bitna a ne samo korektno izvrsavanje programa. Ako vec koristi IOSTREAM deo biblioteke zasto da ne nastavi u tom stilu vec ukljucuje sirovi C string i slicne stvari. To samo dovodi do stvaranja loseg stila mesanja baba i zaba tamo gde za to nema potrebe.

Ima i obrnutih primera kad se standardna biblioteka koristi tamo gde joj mesto nije, a kod i dalje korektan. Na primer u jednom projektu na kome sam radio (MFC, VC++ 7.1) naleteo sam i na ovakav kod (po secanju):

Code:

CString ToString(int value) {
  std::ostringstream s;
  s << value;
  return CString(s.str().c_str());
}


Ovo sam odmah promenio u

Code:

CString ToString(int value) {
  CString result;
  result.Format(_T("%i"),value);
  return result;
}



Sve ima svoje vreme i mesto pa to vazi i za bilo koju tehniku i/ili bibliioteku u programiranju.


Tko leti vrijedi
 
Odgovor na temu

[es] :: C/C++ programiranje :: Binarne datoteke

[ Pregleda: 4103 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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