Problem mit Maploader



  • Danke ich werde es sofort ausprobieren.

    Leider sind meine Kenntnisse mit stringstreams und Manipulatoren sehr begrenzt.



  • Meierei schrieb:

    error C2110: Zwei Zeiger koennen nicht addiert werden

    Mein Fehler.

    Das war auch nicht wirklich das Wahre:

    Doch, das ist das Wahre für einstellige Zahlen. Wies mit zweistelligen geht, hab ich auch schon gezeigt.

    Nimm am besten den Snippet von akari, ich hab keinen Bock mehr.



  • 😞

    Hmm. Habe nur noch Probleme beim Einlesen.

    Field::Field() 
    { 
        // Load maps
    	// For each map
        for(short i = 0; i < 1; i++) 
        { 
    		stringstream curMap;
    		curMap << "map";
    		curMap.width(2); 
            curMap.fill('0');
    		curMap << i + 1 << ".txt";
    
    		ifstream mapFile(curMap.str().c_str()); 
    		mapFile.
    
    		if(mapFile) 
                cout << curMap.str() << " geladen!" << endl; 
            else 
                cout << curMap.str() << " nicht geladen!" << endl; 
    
            // For each row 
            for(short r = 0; r < 15; r++) 
            { 
                // For each element 
                for(short e = 0; e < 26; e++) 
                    mapFile.get(&maps[i][r][e], e); 
    			mapFile.
            } 
        } 
    }
    

    Und zum Zeichnen:

    void Field::drawMap()
    {
    	for(short r = 0; r < 15; r++)
    	{
    		for(short e = 0; e < 26; e++)
    		{
    			cout << maps[0][r][e] << "  ";
    		}
    	}
    	cout << "Drawed" << endl;
    }
    

    Problem beim einlesen. Wie wechsle ich zur nächsten Zeile?

    (Die Textdatei besteht aus 15 Zeilen mit jeweils 26 Zeichen)



  • Kann mir hier bitte jemand helfen.



  • Habs selber gecheckt.

    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main()
    {
    	char maps[50][15][26];
    
    	ifstream mapFile("map01.txt", ios::in | ios::out | ios::binary);
    
    	mapFile.getline(maps[0][0], 60);
    
    	cout << maps[0][0][0];
    	cout << maps[0][0][1];
    
    	return 0;
    }
    

    Ist ja doch nicht so schwer...


Anmelden zum Antworten