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

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

1

11.11.2012, 11:00

c++ - algorithm Problem

Hallo!

Ich arbeite zurzeit das erste mal mit dem include <algorithm> und habe mir aus einem Tutorial im Internet ein Programm angeschrieben. Wenn ich es jedoch ausführe, kommt vom Compiler folgender Fehler:

c:\program files (x86)\microsoft visual studio 10.0\vc\include\algorithm(1815): error C2446: '==': Keine Konvertierung von 'const char *' in 'int'

Ich bin jetzt etwas verwirrt, da er mir sagt, der Fehler liege in der algorithm Datei (Zeile: 1815). Ich kann mir aber beim besten Willen nicht vorstellen, das dem so ist.
Leider weiß ich natürlich auch nicht, wo ich denn nun in meinem Programm einen Fehler gemacht habe. Vielleicht könnt ihr mir ja helfen.

Gruß
Luca

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

11.11.2012, 11:06

In "algorithm" sind Templates definiert.
Wenn du die benutzt, generiert der Compiler den entsprechenden Code.
Wenn dabei ein Fehler entsteht, wird dieser in "algorithm" angezeigt. Der Fehler liegt aber in deiner Benutzung eines Templates aus dieser Datei.
Ohne deinen Code kann man aber nicht mehr dazu sagen.

3

11.11.2012, 11:06

Nein, der Fehler wird schon bei dir liegen. Es ist halt nur gerade bei Templates so, dass der Compiler nicht immer genau sagen kann, was jetzt eigentlich falsch ist, da du zum Beispiel der Funktion falsche Werte übergibst, die Übergabe noch funktioniert, es dann aber in der Berechnung knallt. Eigentlich müsste dir der Comiler auch sagen, von wo die Funktion aufgerufen wird, die dann Probleme macht, da müsstest du dann deinen Fehler finden.
Lieber dumm fragen, als dumm bleiben!

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

4

11.11.2012, 11:13

Hm, ok. Ich denke in diesem Abschnitt Code dürfte sich der Fehler verbergen. Vermutlich in der erase() - Funktion. Jedoch habe ich eben diese Parameter aus einem Tutorial übernommen und dort scheinen sie zu funktionieren.

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
ifstream file(filename);
if(file.is_open())
{
    string tempLine;
    getline(file, tempLine);

    tempLine.erase(remove(tempLine.begin(), tempLine.end(), " "), tempLine.end());
    mapSizeX = tempLine.length();

    file.seekg(0, ios::beg);

    while(!file.eof())
    {
        file >> mapFile[loadCounterX][loadCounterY];
        loadCounterX++;

        if(loadCounterX >= mapSizeX)
        {
            loadCounterX = 0;
            loadCounterY++;
        }
    }

    mapSizeY = loadCounterX;
}

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

11.11.2012, 11:55

Das " " macht mich stutzig.
Soll das Leerzeichen entfernen? Es müsste eigentlich ' ' lauten.
Sonst würde ein einzelnes Zeichen mit einem String verglichen.

Werbeanzeige