string in int 64bit

03/27/2015 15:57 bloodx#1
Hallo, ich probiere grade einen String in eine 64Bit Value zu Konvertieren, soweit klappt das auch aber er verschluckt entweder die erste Zahl oder die Letzte je nach dem wie ich die größe halt änder


Code:
std::fstream File;
	File.open("./ESP.ini");
	std::string szLine;
	std::size_t position = 0;

	std::string szCGame;
	while (std::getline(File, szLine))
	{
		position = szLine.find("CGame=");
		if (position != std::string::npos)
		{
			szCGame = szLine.substr(position + 6, position + 11);
		}
	}
	File.close();
	printf("%s\n", szCGame.c_str());
	//DWORD64 pCGame = std::strtoll(szCGame.c_str(), 0, 16);
	DWORD64 pCGame = _strtoui64(szCGame.c_str(), 0, 16);
	printf("%p\n", pCGame);
Ausgabe:
0x142AF11C8
42AF11C8

auch wenn ich es ohne 0x aus der Datei lese ändert es leider nix.

Habe ich vielleicht etwas übersehen ? Danke :)

Lösung:
oh man - man sollte ggf auch %I64x verwenden bei printf ..
03/27/2015 18:13 MrSm!th#2
Oder einfach nicht printf nutzen.
03/27/2015 18:17 bloodx#3
Quote:
Originally Posted by MrSm!th View Post
Oder einfach nicht printf nutzen.
Ja das ist der bessere Ansatz :D - mache es meistens nur weil es schneller ist

std::cout << std::hex hat mir dann doch die richtige lösung gezeigt natürlich ._.'