Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

1

27.05.2011, 21:26

string in array

Hi Leute,
hätte mal eine frage, wie caste ich einen std::string, welcher von der funktion getline benötigt wird in ein array.
Von array in string is ja gar kein problem.

Freu mich über antworten.

Gruß
Moritz

2

27.05.2011, 21:28

Suchst du vielleicht so etwas?!

Gruß
SaRu_

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

3

27.05.2011, 21:54

kann mir vielleicht jemand en code beispiel geben.

hab en array tile[100][100].


nun will den inhalt von meinem string an das array übergeben.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

27.05.2011, 23:00

Ich versteh nicht ganz was du willst. Ein string ist ein 1D Array, das da oben ist ein 2D Array!? Was genau soll dieser string darstellen? Welchen Typ haben die Elemente von tile?

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

5

28.05.2011, 00:30

Du fragst wegen jedem bisschen immer nach (und das meist sehr unverständlich), verstehst selten die Antworten und ignorierst gekonnt die Aufforderung, erstmal ein Einsteigerbuch durchzulesen. Wieso? Oo
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

6

28.05.2011, 01:05

Wieso? Oo


Weil er es kann! :lol:

Aber Architekt hat da schon recht. Du könntest dir und vor allem uns eine Menge Nerven sparen, wenn du mal ein entsprechendes Buch durcharbeiten und hin und wieder eine Web-Suchmaschine benutzen würdest.

Gruß
SaRu_

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

7

28.05.2011, 02:51

Dein Array und dein String sind zwei grundverschiedene Dinge, die du erst mal gar nicht ineinander umwandeln kannst. Wenn du das können willst musst du dir eben eine Funktion schreiben, die die entsprechenden Zeichen des Strings in dein Array schreibt und zwar so wie DU es willst. Das kann ja beliebig sein. Denn es gibt ziemlich viele Möglichkeiten einen String auf ein 2-dimensionales Array zu verteilen. Das kommt eben ganz auf deine Wünsche an. Und wie du dann schließlich ein Array mit Daten füllst, das solltest du ja können.

8

28.05.2011, 19:04

Zitat

Basically, there are only 10 types of people in the world. Those who know binary, and those who don't.

moritz31

Treue Seele

  • »moritz31« ist der Autor dieses Themas

Beiträge: 259

Wohnort: Hessen

Beruf: Student

  • Private Nachricht senden

9

29.05.2011, 13:36

hi sorry das ich wieder nerven muss :D

aber ich hab mal wieder ein problem.

habe das mit dem laden jetzt eigetnlich hin bekommen :

C-/C++-Quelltext

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
void tilemap :: load(std::string Map)
{
    ifstream LoadM;
    LoadM.open(Map + ".lvl");

         for(int i = 0;i < 32;i++)
         {

                getline(LoadM,name);
                
                 for(int j = 0;j<name.length();j++)
                 {
                     if(name.c_str()[j]!=',')
                        tile[i][j] = name.c_str()[j];
                     cout << tile[i][j];        
                 }
                 
     
             
         }
     

    LoadM.close();
    
}



aber jetzt muss ihrgendein fehler in meiner draw funktion sein, denn die y achse wird immer nur alle 2 felder gezeichnet

C-/C++-Quelltext

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void tilemap ::draw(sf::RenderWindow &Window)
{
    sf::Image FenceI;
    if(!FenceI.LoadFromFile("data/image/fence.png"))
    {}
    sf::Sprite Fence(FenceI);
    sf::Image bottomI;
    if(!bottomI.LoadFromFile("data/image/bottom.png"))
    {}
    sf::Sprite bottom(bottomI);
    sf::Image EarthI;
    if(!EarthI.LoadFromFile("data/image/earth.png"))
    {}
    sf::Sprite Earth(EarthI);
    const unsigned int m_hoehe = 32;
    const unsigned int m_breite = 32;
    const unsigned int t_hoehe = 32;
    const unsigned int t_breite = 32;


    for(int i = 0; i < m_hoehe;i++)
    {

        for(int j = 0;j < m_breite;j++)
        {
            bottom.SetPosition(i*t_hoehe,j*t_breite);
            Window.Draw(bottom);

            switch(tile[i][j])
            {
            case '0':
                Fence.SetPosition(i*t_hoehe,j*t_breite);
                Window.Draw(Fence);
                
                break;
            case '2':
                Earth.SetPosition(i*t_hoehe,j*t_breite);
                Window.Draw(Earth);

            default:
                break;
                
            }
        }
        
    }
    Window.Display();
    
}


hab mal ein bild als anhang
»moritz31« hat folgendes Bild angehängt:
  • Gamefail.PNG

10

29.05.2011, 17:55

Lass dir am Besten mal deine tilemap ausgeben (als Zahlenwerte meine ich). Dann kannst du schauen, ob es nicht vielleicht einen Fehler beim Laden etc. gibt. In der Draw-Funktion fälllt mir so direkt nichts auf.

Gruß
SaRu_

Werbeanzeige