String Error

Hab schon, denke ich. charID ist ein u32, ein unsigned int (also eine Zahl). Die kannst du weder mit += an den string anhängen oder noch mit %s ausgeben.

Sollte das ein char* sein?

Wenn nicht, müsstest du das etwas umständlicher an den string anhängen (Zahl in String umwandeln!) und mit %u ausgeben.
 
hi also was meinst du den mit "Hab schon, denke ich"? und werde dies gleich mal versuchen. Könntest du dich mal bei mir melden bitte.
 
Hab weder ICQ oder MSN installiert. Mit Hab schon meinte ich, ich hab das Problem des Crash gefunden (oder glaube es zumindest)
 
Achso ohh schade das du kein icq oder msn hast. Ich werde das jetzt mal mit %u testen.

Console->Print("%u Charakter ist gelöscht!", CharID);
Console->Print("%u Charakter ist nicht gelöscht!", CharID);

Ich hoffe du meintest das so.
 
remove gibt 0 zurück, wenn die Datei gelöscht werden konnte, sonst -1. errno beinhaltet dann einen der zwei Fehlercodes EACCES oder ENOENT.

Wie genau heisst denn die Datei? Hast du charID in einen String umgewandelt oder einfach mit += an path angehängt?

Das Umwandeln könnte so aussehen:

char szTemp[200];
wsprintf( szTemp, "%u", charID );
path += szTemp;

Und ja, es geht auch mit stringstreams, aber irgendwie läuft das intern ja sowieso auf dasselbe raus.
 
mhh ne ich habe das eigendlich nur so gemacht und der sollte eigendlich datei löschen nur der code ist da für nicht da:

if(CharID!=0)
{
std::string path = "database\\playerchars";
path += "\\";
path += CharID;
path += ".xml";

if (remove(path.c_str()))
Console->Print("%u Charakter ist geloescht!", CharID);
else
Console->Print("%u Charakter ist nicht geloescht!", CharID);

es kommt immer drauf an mal was gelöscht wird an CharID es kan bsp 4.xml sein oder 79.xml die sucht er dan automatisch herraus.
 
Der std::string unterstützt das direkte Umwandeln eines chars in eine Zahl nicht. Der setzt dir statt der Zahl da wahrscheinlich ein seltsames Zeichen ein. Ändere das so:

std::string path = "database\\playerchars";
path += "\\";

char szTemp[200];
wsprintf( szTemp, "%u", charID );
path += szTemp;

path += ".xml";
 
mhh danke aber bei wsprintf( szTemp, "%u", charID ); sagt er ein fehler und zwar:
error C2065: 'charID' : undeclared identifier
 
Zurück