Seite 1 von 1

Warning bei Typumwandlung?

Verfasst: 7. August 2007 09:15
von archon
Servus!

ich habe folgende Unterfunktion

Code: Alles auswählen

int GalNavMsgGenerator::extractWordData(QString input)
{
 	UINT32 value;
	if(sscanf(input.toStdString().c_str(), "%8x", &value) == 0)
		{
		std::cout << "error to convert \":" << input.toStdString() << "\" to integer" << std::endl;
		return -1;
		}
	return value;
}
aber bei der zeile

Code: Alles auswählen

if(sscanf(input.toStdString().c_str(), "%8x", &value) == 0)
gibt er mir folgendes Warning aus:
warning: unsigned int format, UINT32 arg (arg 3)
weis jemand woran das liegt bzw wie ich das vermeiden könnte?

Verfasst: 7. August 2007 09:29
von upsala
Was hat das mit Qt zu tun? Zu deinem Problem: Es gibt sicher zu sscanf eine Beschreibung, in der man nachlesen kann, warum diese Warnung auftaucht...

Verfasst: 7. August 2007 09:45
von Christian81

Code: Alles auswählen

sscanf(input.toStdString().c_str(), "%8x", &value) 
Soll das ein Beispiel werden wie man am umständlichsten einen QString in einen uint32 wandelt? Dazu noch super der Umweg über std::string...
Schonmal was von der Doku zu QString gehört?

Verfasst: 7. August 2007 13:03
von archon
Ich weis nicht aber manchmal hab ich das gefühl das hier manche Leute einfach nur postpadden...

Verfasst: 7. August 2007 13:27
von Christian81
Wieso? QString::toInt() würde dir alle Probleme ersparen und dazu noch die Konvertierung zu std::string und char* und das nun wirklich nicht sichere sscanf überflüssig machen.

Verfasst: 7. August 2007 13:29
von archon
aye

-closed-