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
FileInputStringgenannt 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?
-
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)