[c++] schrijven van binair bestand

Pagina: 1
Acties:
  • 47 views sinds 30-01-2008

  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 21-08 10:18
Ik ben nu sinds kort op school bezig met c++, schrijven naar 'gewone' bestanden lukt, maar nu moet ik een binair bestand schrijven.

Ik heb al op internet lopen zoeken, maar ik heb dus geen flauw idee hoe ik dat zou kunnen doen :( Is er een mogelijkheid dat een van jullie een heel simpel voorbeeld (dus niet te moeilijk :9 ) zodat ik een begin(netje) heb om binaire bestanden te schrijven, heb een boek erbij alleen daar word niet echt veel erover uitgelegd :'(

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Waarom denk je dat er een verschil is tussen het schrijven naar een text bestand en een text bestand? Het is in principe hetzelfde.

Heb je al wat geprobeerd? Heb je ergens een stuk code waarin het het misgaat?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21-08 10:06
Als je een file opent met fopen(etc...) dan geef je als 2e parameter mee wat je met de file wilt doen, openen voor lezen, schrijven etc... hier geef je dus ook aan of het een binary file moet zijn, staat zover ik weet in elk C(++) boek.

  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 21-08 10:18
Als ik in mijn boek kijk staat er dit als voorbeeld code:

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

class Punt {
private:
    int x, y;
public:
    Punt( int x = 0, int y = 0 )
        : x( x ), y( y ) {
    }
};

int main()
{
    string filenaam = "bestand.dat";
    Punt A, B( 2, 3 ), C( 17, 21);
    ofstream bestand(filenaam.c_str(), ios::binary);
    bestand.write( reinterpret_cast<char*> (&A), sizeof( Punt ) );
    bestand.write( reinterpret_cast<char*> (&B), sizeof( Punt ) );
    bestand.write( reinterpret_cast<char*> (&C), sizeof( Punt ) );
    cout << "Het binaire bestand is geschreven";
    return 0;
}

Ik snap dus niet wat ze met het Punt willen bereiken?
Wanneer ik nu bestand.dat ga bekijken staat er dit:
code:
1


Al met al snap ik niet echt wat er hier gebeurt, het gaat dus op een hele andere manier dan ik het met text bestand heb geleerd
chrisO schreef op 16 september 2003 @ 12:56:
Als je een file opent met fopen(etc...) dan geef je als 2e parameter mee wat je met de file wilt doen, openen voor lezen, schrijven etc... hier geef je dus ook aan of het een binary file moet zijn, staat zover ik weet in elk C(++) boek.
en wanneer dat gedaan is, kan ik gewoon naar het bestand schrijven als een normaal tekst bestand?

[ Voor 24% gewijzigd door codeweb op 16-09-2003 12:58 ]


  • _Rayman_
  • Registratie: November 2001
  • Laatst online: 29-08-2023

_Rayman_

Verwacht het onverwachte.

Ik zal ffies opzoeken in mijn schoolopdrachten. Als ik het heb gevonden, post ik het gedeelte hier.

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 21-08 13:30

BoAC

Memento mori

codeweb schreef op 16 September 2003 @ 12:57:
Als ik in mijn boek kijk staat er dit als voorbeeld code:

C:
1
..

..
en wanneer dat gedaan is, kan ik gewoon naar het bestand schrijven als een normaal tekst bestand?
Zal volgens mij wel kloppen als je het weer terug leest. Zal ongetwijfeld wel een voorbeeldje van staan in je boek ;)
Trouwens open dat bestandje eens met een binary ;) editor? Dan zie je wel wat anders denk ik ;)

edit:

Eigenlijk is er geen verschil in binary of tekst dan alleen wat conversie van /r/n en nog een paar andere (documentatie lesen, weet ik ook niet uit mijn hoofd).
Zelf open ik bestanden altijd binary omdat dan de filesize en de gelezen bytes hetzelfde zijn terwijl filesize >= gelezen bytes wanneer ik als text open

[ Voor 56% gewijzigd door BoAC op 16-09-2003 13:03 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

en wanneer dat gedaan is, kan ik gewoon naar het bestand schrijven als een normaal tekst bestand?
Zoals Creepy al zegt is op hedendaagse OS'en (Windows/Linux) geen verschil tussen binary- en textfiles. Het is dus hetzelfde.

Verder heb je zo te zien als je je resultaat file met een teksteditor probeert te openen geen idee wat een binary file is, en al met al vind ik dit topic wel nogal laag niveau. Huiswerk mag op P&W, maar dan wel op P&W-niveau, en dit is gewoon iets wat je een keer 5 minuten met je docent moet doorspreken. Deze gaat dus dicht, en vraag je docent eens om betere uitleg :)

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.