Problem z otwieraniem plikow binarnych
Ostatnio zmodyfikowano 2013-11-20 22:15
Mr.J Temat założony przez niniejszego użytkownika |
Problem z otwieraniem plikow binarnych » 2013-11-20 22:15:01 Witam Od paru dni glowie sie nad pewnym problemem, mam takie dwa fragmenty kodu: Pierwszy sluzy do wczytania fragmentu pliku z mapa, ktory zawiera podstawowe dane i tutaj wszystko dziala jak nalezy. int MapManager::load_map( std::string mapName ) { int dataSize = 0; int mapNameSize = 0; std::ifstream fin; fin.open(( "Maps/" + mapName + ".Pg" ).c_str(), std::ios::binary ); if( !fin ) return - 1; fin.read(( char * ) & dataSize, sizeof( dataSize ) ); fin.read(( char * ) & mapNameSize, sizeof( mapNameSize ) ); fin.read(( char * ) & mapName, mapNameSize ); fin.read(( char * ) & number_of_x_sectors, sizeof( number_of_x_sectors ) ); fin.read(( char * ) & number_of_y_sectors, sizeof( number_of_y_sectors ) ); fin.read(( char * ) & number_of_players, sizeof( number_of_players ) ); fin.close(); std::ofstream test; test.open( "test zarzadzania mapa.txt" ); test << mapName; test << "\n"; test << number_of_x_sectors; test << "\n"; test << number_of_y_sectors; test << "\n"; test << number_of_players; test.close(); return 0; }
Drugi nastepuje niemal od razu po pierwszym i wylapalem ze znajduje sie w miejscu gdzie ucialem kod, mapIn.fail() zwraca true (bad(), eof() zwracaja false) int MapManager::load_sector( int sector_x, int sector_y, int offset_x, int offset_y ) { check_error( "test001.txt" ); SDL_Chain newChain = { '0', '0', '0', '0', '0', '0', '0', '0' }; for( int iPlane = 0; iPlane < 2; iPlane++ ) { for( int i = offset_y; i < offset_y + TILES_PER_SECTOR; i++ ) { for( int j = offset_x; j < offset_x + TILES_PER_SECTOR; j++ ) { objSlot[ iPlane ][ i ][ j ].pop_object(); objSlot[ iPlane ][ i ][ j ].set_occupied( false ); objSlot[ iPlane ][ i ][ j ].set_event( EMPTY ); objSlot[ iPlane ][ i ][ j ].set_chain( newChain ); objSlot[ iPlane ][ i ][ j ].set_checked( false ); } } } if( sector_x >= 0 && sector_x < number_of_x_sectors && sector_y >= 0 && sector_y < number_of_y_sectors ) { long length = 0; long g_possition = 0; std::ifstream mapIn; mapIn.open(( "Maps/" + mapName + ".Pg" ).c_str(), std::ios::binary ); mapIn.seekg( 0, mapIn.beg ); if( !mapIn ) {
Zupelnie nie rozumiem czemu tak sie dzieje jako ze sciezka do pliku jest w obydwu miejscach taka sama ... ;( Ehhh... po raz kolejny kiedy postanawiam napisac jakis problem na tym forum znajduje rozwiazanie po wyslaniu posta xD... okazalo sie ze nazwa argumentu w metodzie load_map byla taka sama jak zmiennej przechowujacej nazwe mapy dlatego zapisywalem do pliku pusty strumien... |
|
« 1 » |