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

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

1

23.12.2006, 20:28

[DrawText] Wort und Variable ausgeben

Hallo zusammen,

ich möchte mittels DrawText einen Text und dann den Wert einer Variable ausgeben. Ist wahrscheinlich total billig, nur ich krieg es momentan einfach net hin :cry: .

values.population ist eine int-Wert, den ich gerne hinter das Wort "Bevölkerung" setzen möchte.

Leider (ist auch logisch) geht diese Variante ja nicht.

C-/C++-Quelltext

1
DrawText(hdc, TEXT("Bevölkerung:"values.population), -1, &rect,DT_LEFT);


Wie geht das jetzt nochmal am besten?

Danke - spacegaier

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

2

23.12.2006, 20:42

C-/C++-Quelltext

1
2
3
    wchar_t temp[512];
    swprintf(temp, 512, L"Population: %d", values.population);
    DrawText(hdc, temp, -1, &rect,DT_LEFT);
Ohne Gewähr, aber die Richtung stimmt ;)

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

3

23.12.2006, 20:49

Danke, perfekt, super.

Des ist schon fast wie ein Weihnachtsgeschenk (ja ist denn schu Weihnachten?)!!!

Ich habe aber noch eine Frage/ ein Problem: Ich möchte das ganze nun nochmal machen und einen Prozentsatz ausgeben.

Wie bekomme ich nun noch ein Prozent-Zeichen hinter den int-Wert?
Folgendes geht nämlich leider nicht:

C-/C++-Quelltext

1
2
wchar_t temp[512]; 
swprintf(temp, 512, L"Bevölkerung: %d \nSteuersatz: %d \%", values.population, values.tax_rate); 

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

24.12.2006, 01:19

C-/C++-Quelltext

1
2
wchar_t temp[512]; 
swprintf(temp, 512, L"Bevölkerung: %d \nSteuersatz: %d %s", values.population, values.tax_rate, L"%"); 
:oops: Also statt das % auszuschreiben das ganze in ne Variable packen. Mann ist die Idee scheisse, sollte aber gehen :lol: Mich wundert ja das die Funktion die Escapesequenz nicht erkennt.

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

5

24.12.2006, 01:36

Hm, war das nicht "%%", also zweimal das Prozentzeichen? </grübel>
"Games are algorithmic entertainment."

6

24.12.2006, 02:06

Dem Std. entsprechend sollte es wie Osram sagte %% sein ...

Zitat

%
Print a '%' character; no argument is converted. The complete conversion specification shall be %%.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

24.12.2006, 12:19

Da Patrick ja nicht mehr hier ist, werde ich das für ihn übernehmen.
Es geht auch ohne die C-Style printf-Funktionen:

C-/C++-Quelltext

1
2
3
4
5
6
#include <iostream>
#include <sstream>

std::ostringstream text;
text << "Bevölkerung: " << values.population;
DrawText(hdc, text.str().c_str(), -1, &rect, DT_LEFT);

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

8

24.12.2006, 14:52

Im petzold steht es glaub ich aber auch nur mit einem %... weis net genau und hab auch kein bock nachzuschauen...

@spacegaier: mach es doch so wie david dann gibt es keine probleme...


mfg,

Faule Socke

9

24.12.2006, 15:28

Mein Gott ... die Stream-Variante ist halt ne sauber C++ Art ... und

C-/C++-Quelltext

1
2
TCHAR szTemp[512];
_sntprintf(szTemp, 512, _T("Bevölkerung: %d \nSteuersatz: %d %%"), values.population, values.tax_rate);
funktioniert genau so gut.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

24.12.2006, 22:10

Jep, ist aber die unsaubere C Art. Und hat ganz wesentliche Nachteile!
@D13_Dreinig

Werbeanzeige