On Thursday 04 September 2003 14:39, Volker Jacobsen wrote:
Hallo zusammen.
Ich hab ein Problem mit sprintf. Ich versuche einen Index aus einer über unixODBC angesprochenen Datenbank auszulesen und dann diesen integer Wert mit Hilfe von sprintf in einen char* umzuwandeln. Danach will ich den char* einfach nur ausgeben.
Die Syntax sieht wie folgt aus:
SQLINTEGER eins, seins; char *streins, zwei[50]; /* Verbindung zur Datenbank aufbauen und Spalten anbinden zwei wird an eine text-Spalte angebunden, eins an die Index-Spalte*/
while (odbc_erg!=SQL_NO_DATA) { odbc_erg=SQLFetch(odbc_hstmt); sprintf(, seins, "%d", (int)eins); cout<
Der Witz an der Sache ist der, daß, wenn ich das ganze unter DDD debuge alles einwandfrei läuft, aber wenn ich das Programm in ner Shell laufen lasse, krieg ich nen Speicherzugriffsfehler. Und ich weiß einfach nicht wieso.
Wenn mir jemand ne andere Funktion zum umwandeln von Zahlendatentypen in Strings sagen kann, wär mir auch schon etwas geholfen.
Hi, also C-Strings sind doch extrem unkomfortabel und ausserdem die reinsten Speicherzugriffsfehlergeneratoren. Wenn du eh schon C++ verwendest, dann kannst du doch gleich std::stringstream verwenden. Z.B. #include <sstream> #include <string> template<typename T> std::string convertToString( T value) { std::stringstream s; s << value; return s.str(); } Das hat dann ausserdem den Vorteil, dass es sich der SQLINTEGER Implementierung anpasst. Ciao
participants (1)
-
Sebastian Huber