problem z plikiem pgm

0

Dzien Dobry,

mam taki problem. Piszę sobie program filtrujący do plików pgm ( kontury desenie sepie i inne pierdoły ).

No i na start dostaję mokrą szmatą po głowie, program który napisałem sie crashuje, wie ktoś cos na ten temat?

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
    fstream plik;
    char *nazwa;
    char bufor[2048];
    
    cin>>nazwa;
    
    plik.open(nazwa, ios::binary | ios::out );
    
    if(plik.good()==true)
    {
    plik.read(bufor,2048);
    cout<<bufor;
    plik.close();
    }
    else
    {
        cout<<"\nCos sie zjeballo\n";
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
 

To na razie dosyć niewiele, ale no cholerka nie wiem co mu może być, albo jestem taki tępy że nie widzę, albo jestem głupi.

Halp?

0
  1. Nazwę pliku pobierasz do niezidentyfikowanego miejsca w pamięci, do którego pewnie nie masz dostępu.
  2. jak Endrju wspomniał, zamiast ios::out ios::in w trybach otwarcia pliku
  3. bufor jest za mały(jeżeli plik ma 2048 bajtów to nie ma miejsca na znak końca stringu i nigdzie go nie dodajesz)
  4. nie zerujesz bufora, jeżeli plik ma mniej niż 2048 bajtów cała jego reszta to śmieci
  5. z powodu 3 i 4 cout(wypisuje aż trafi na NULL) może czytać po pamięci, do której nie masz dostępu

1 użytkowników online, w tym zalogowanych: 0, gości: 1