[C++] Zapis binarny


(Mnemonic) #1

Cześć, chciałem sobie porównać wielkość pliku tekstowego i binarnego, więc napisałem coś takiego:

#include

#include

using namespace std;


int main()

{

  ofstream plik("test.txt");

  for(int i=0; i!=1000000; i++)

    plik << size_t(-1);


  char bufor[1000000];

  ofstream plik2("test",ios::binary);

  for(int i=0; i!=1000000; i++)

      bufor[i]=size_t(-1);

  plik2.write(bufor,sizeof(bufor));


  cin.get();

}

Pytania:

Czy zapis binarny do pliku jest dobrze napisany?

Jak można to zrobić bez używania tablicy bufor?


([alex]) #2
  char val=-1; // lub short lub int lub long lub long long lub size_t  ofstream plik2("test",ios::binary);  for(int i=0; i1000000; ++i) plik2.write(val,sizeof(val)); [/code]w obu przypadkach zapomniałeś o zamknięciu plików.



Jeżeli kompilator wyrzuci błąd to daj (char*)val zamiast val.

(Mnemonic) #3

Działa. Dzięki za pomoc.