Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

11

13.04.2009, 18:10

Zitat von »"unsigned long"«

iiih schon mal was von lexical_cast gehört?


Das kann man natürlich auch machen ;)

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

12

13.04.2009, 18:23

Zitat von »"K-Bal"«

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
#include <sstream>

...

std::stringstream blubb;
float muh = 5.f;

blubb << muh;

mySfString.SetText(blubb.str());


Das ist glaube ich aber auch nicht ganz das, was er wollte.... das Thema hatten wir hier ja schonmal:
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=11405
Ich habe deinen Code nochmal getestet und er crasht immer noch ^^
Also habe ich deine verbesserte version von ganz unten getestet, da sagt er mir aber, dass er std::setprecision nicht kennt... btw ich kenne lexical_casts nicht, wie funktionieren die? ^^
Ok, habe gegoogled und mir die casts einfach angesehen, vielleicht sollte ich mir boost doch auch mal genauer ansehen, hat ja wirklich einige coole sachen :D

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

13

13.04.2009, 18:36

Zitat von »"n0_0ne"«


Das ist glaube ich aber auch nicht ganz das, was er wollte.... das Thema hatten wir hier ja schonmal:
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=11405
Ich habe deinen Code nochmal getestet und er crasht immer noch ^^
Also habe ich deine verbesserte version von ganz unten getestet, da sagt er mir aber, dass er std::setprecision nicht kennt... btw ich kenne lexical_casts nicht, wie funktionieren die? ^^
Ok, habe gegoogled und mir die casts einfach angesehen, vielleicht sollte ich mir boost doch auch mal genauer ansehen, hat ja wirklich einige coole sachen :D


Wenn du setprecision benutzt musst du auch noch iomanip includen.

Der Vorteil von den Stringstreams ist, dass du einfach noch was dranhängen kannst:

C-/C++-Quelltext

1
blubb << muh << "hallo" << 5 << "test 1 2 " << std::endl;


Ich finde, dass das ne schöne Möglichkeit ist und dafür würde ich nicht extra boost ins Projekt einbinden.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

14

13.04.2009, 19:08

Also ich hab beides mal getestet, lexical_cast und stringstreams, beides lässt sich jetzt kompilieren, stürtzt aber ab, wenn ich es für sf::String::SetText() benutze... liegt wahrscheinlich daran, dass er Unicode erwartet, aber nicht bekommt...
1. wie bringe ich lexicalcasts/stringstream.str() dazu mir Unicode strings zu geben
2. wenn das programm crasht, habe ich plötzlich ein fenster der c++ runtime vor mir o_O hatte ich noch nie... woher kommt das, und was ist überhaupt die runtime, darunter habe ich mir immer sowas wie die Java VM vorgestellt... aber ich dachte c++ hat das nicht nötig :D

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

15

13.04.2009, 19:13

Also bei mir funzt es ohne Probleme...

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

16

13.04.2009, 19:17

Bitte meine Fragen beantworten :D

(vielleicht ist aber auch was falsch... kann ich mir aber nicht vorstellen.. sicherheitshalber:)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    stringstream blubb;
    blubb   << fixed
            << setprecision(0)
            << m_Clock.GetElapsedTime();

    m_TextTime.SetText(blubb.str());

    // Update Timetext

    //swprintf(cBuffer, L"Time: %f s", m_Clock.GetElapsedTime());

    //m_TextTime.SetText(cBuffer);

unten das geht, oben das stürtzt ab

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

17

13.04.2009, 19:29

Sieht so weit ganz gut aus.

Ich habe hier ne Source-Datei gefunden, in der ich mit SFML und stringstreams gearbeitet hab. Da habe ich folgende Header inkludiert, vielleicht brauchst du ja noch einen von denen:

C-/C++-Quelltext

1
2
3
4
#include <iostream>
#include <sstream>
#include <string>
#include <iomanip>


Welche SFML Version benutzt du?

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

18

13.04.2009, 19:30

habe die auch alle eingebunden... ich benutze 1.4 (also release, nix neues)

19

13.04.2009, 22:16

Zitat von »"n0_0ne"«

Also ich hab beides mal getestet, lexical_cast und stringstreams, beides lässt sich jetzt kompilieren, stürtzt aber ab, wenn ich es für sf::String::SetText() benutze... liegt wahrscheinlich daran, dass er Unicode erwartet, aber nicht bekommt...
Hättest du die SFML-Dokumentation angeschaut, wüsstest du, dass sf::Unicode::Text einen impliziten Konstruktor für std::string anbietet - das muss also zwangsläufig erlaubt sein. Der Fehler liegt woanders im Programm. Versuch sonst ein Minimalbeispiel.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

20

13.04.2009, 23:55

hhmm, aber sf::String != sf::Unicode::Text....
und der Fehler liegt 100%ig in dem Code, den ich gepostet habe... wenn ichs auskommentiere läuft ja alles wunderbar ^^

Werbeanzeige