pfad c++

alkatal

Grünschnabel
hi habe folgendes problem

Ich shreibe einen pfad den ich mittels SHGetPathFromIDList ermittle in ein batch file.

dieser path ist eingabe eines kleinen exe programms. Problem ist das der pad nur ei backslash hat zb: D:\pfad\unterpfad .
Ich brauche ja gemäss c++ D:\\pfad\\unterpfad

habe mit std strings versucht den string zu ändern mittels dieser statishen string function:

Code:
string StringUtils::replaceAll(string &s, string &f, string &r) {
	unsigned int found = s.find(f);
	while(found != string::npos) {
		s.replace(found, f.length(), r);
		found = s.find(f);
	}
	return s;
}


also replaceAll(pfad,"\\","\\\\")

bekomme eine endlosshleife

any idea?
 
Hi,

wenn du deinen Code debuggst, solltest du eigentlich das Problem selbst erfassen können.

Du brauchst deinen Pfad net zu ändern!

Wenn du selbst einen Backslash in einen String eingeben willst brauchst du 2 Backslashes. Den ersten als Escapezeichen für den zweiten!

Du kannst ohne weiteres den String weiterverwenden!

Ausserdem ist in deiner Schleife folgendes Problem.

Deine bedingung ist das Vorkommen eines Backslashes. Da du mit der methode find() immer vom Anfang eines Strings suchst wirst du immer einen finden! Deshalb die Endlosschleife.

Aber wie gesagt, du brauchst den String, den du von SHGetPathFromIDList bekommst net mehr zu ändern!

Gruß,

Peter
 
Zuletzt bearbeitet:
Zurück