Grundlegendes allerlei



  • Ich habe ein paar kleine probleme und erhoffe mir hilfe 🙂 meine probleme sind folgende :

    1. Möchte ich gerne eine while schleife laufen lassen welche so lange weiter läuft wie der string , den ich

    FileInputString
    

    genannt habe , an der stelle i nicht das symbol ":" stehen hat meine idee war folgendes:

    while (!FileInputString[i] == ":")
    {
       i++;
    }
    

    Aber dass klappt nicht so gut 😕

    2. Möchte ich gerne den teil des strings den ich bereits isoliert habe , welcher nur aus zahlen besteht , in einen int umwandeln . Aber wie ???

    Schonmal dake für eure hilfe 🙂



  • Klappt nicht ist keine Fehlerbeschreibung!

    while (FileInputString[i] != ':')
    {
       i++;
    }
    


  • Zu 2: stringstream, to_string.



  • Oder klammern

    while (!(FileInputString[i] == ":"))
    {
       i++;
    }
    


  • Danke schon mal dafür und zwar hätte ich da noch eine sachen :

    ich mache mir in der main schleife ein CMap (eine klasse die ich erstellt habe) array und zwar umgefehr so :

    int main()
    {
       While blablabla
       {
          If blablabla
          {
             Mach irgendwas
             CMap *Map[][] = new CMap();
             //hier sagt er dass ich dass mit {...} oder
             //sowas machen soll
          }
          //allerdings erkennt er Map[x][y] hier nicht
          //mehr und ich frage mich warum ???
       }
    }
    


  • Der erkennt das nicht mehr, weil der Zeiger (aber nicht der Speicher auf den er zeigt!), bei der geschweiften Klammer nach dem if zerstört wird!
    Verwende auch bitte std::vector, der ist einfach besser!
    BTW: Wie wärs mit einem FAQ-Eintrag auf dem man bei so etwas einfach verlinken kann?


  • Mod

    Mach dich mal unbedingt über Gültigkeitsbereiche schlau. Dann fällt auch automatisch der Quatsch mit dem new weg. Wie lernst du C++?

    Selbst wenn wir das mit dem new mal einen Augenblick lang gelten lassen, bezweifle ich doch ganz stark, dass da wirklich CMap *Map[][] stehen soll. Was soll das deiner Meinung nach sein?



  • Ich will im grunde eine Map laden diese sollte natürlich 2dimensional sein , und nach belieben löschbar deswegen den pointer und ich möchte die größe der Map jedesmal neu bestimmen können. Ich hoffe du weisst jetzt was ich meine.
    Ich lerne c++ mit büchern tutorials und so was 🙂



  • Guck an:

    std::vector<std::vector<CMap>> map(height, std::vector<CMap>(width));
    map[0][0] = ...
    


  • Kann ich jetzt jeder zeit diese map löschen und eine neue gleichnamige erstellen ohne probleme und wen ja wie?



  • Willst du eine neue Größe machst du einfach:

    map.resize(new_height);
    for (auto &row : map)
      row.resize(new_width);
    

    (Besser wäre es aber generell, ein zweidimensionales Array auf ein eindimensionales abzubilden)


Log in to reply