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

Chris2130

Frischling

  • »Chris2130« ist der Autor dieses Themas

Beiträge: 49

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

1

08.01.2010, 22:44

Int in Char Casten

Hallo, ich möchte gerne eine Integer Variable in einem Label ausgeben. Dafür muss ich das ja in Char haben, aber wie caste ich das in Char?

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

2

08.01.2010, 22:48

C-/C++-Quelltext

1
2
int a = 44;
char b = static_cast<char>(a);

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

08.01.2010, 22:58

sicher das es so gemeint war?
ich glaube er will den integer in einen string casten und nicht in einen char.(alles andere wäre nutzlos^^)

wenn du es mit dem programmieren ernst meinst solltest du suchen lernen und dir nen arbeits-/handbuch zulegen.

http://www.google.de/search?hl=de&client…&meta=&aq=f&oq=
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

4

09.01.2010, 09:25

Auch wenn der Link von Nachoman wohl schon Antwort genug war:

C-/C++-Quelltext

1
2
3
4
5
const int n = -47;
std::stringstream ss;
ss << n;
const std::string s = s.str();
std::cout << s << std::endl;
<< an dieser Stelle ist eine Signatur verstorben >>

5

09.01.2010, 12:17

Oder kürzer und komfortabler:
http://www.boost.org/doc/libs/1_41_0/libs/conversion/lexical_cast.htm
Lieber dumm fragen, als dumm bleiben!

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

6

10.01.2010, 14:23

Hier kommen Umständlichkeiten ans Tageslicht... wow...

Gerade bei so grundlegenden Dingen schon mit lexical_cast oder streams anzukommen, ist als ob man mit ner ICBM eine winzige Ameise ausradieren will.

C-/C++-Quelltext

1
2
3
4
5
6
int value = 12345;

char buffer[12] = ""; // int32 hat 10 stellen + 1 NULL Terminierung + 1 Overhead.

sprintf("%d", value);

printf(buffer);


Schneller, leichter, schlanker, besser.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

7

10.01.2010, 14:59

Zitat von »"unsigned long"«

Schneller, leichter, schlanker, besser.

... c standard. was machst du wenn der code auf einem 64bit system compiliert und ausgeführt wird? dann brauchst du einige stellen mehr.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

8

10.01.2010, 15:05

ich rede vom int32. Auf Windows 7 ist int auch nur 32 bit und kompilieren tu ich derzeit auch nur auf einem 64 bit System ;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

9

10.01.2010, 15:11

Zitat von »"unsigned long"«

ich rede vom int32. Auf Windows 7 ist int auch nur 32 bit und kompilieren tu ich derzeit auch nur auf einem 64 bit System ;)

Ich denke, dass er meint, dass so etwas direkt im Code eher gefährlich ist. Wenn das Programm tatsächlich mal halt einen Integer hat, der grösser als 32 Bit ist, dann gehts nicht mehr. (Also z.B ein typedef für int32 oder so benutzen wäre ja eine Lösung).

10

10.01.2010, 18:07

Zitat von »"unsigned long"«

Schneller, leichter, schlanker, besser.

Pff, kommt auf den Kontext an.
Wenn ich z.B. eben mal einen Parameter übergeben will, ist es enorm nervig, 3 zusätzliche Zeilen zum konvertieren tippen zu müssen. Ein lexical_cast mag etwas langsamer sein, aber das ist ja in der Regel auch nichts, was man Millionen mal pro Frame macht.
boost an sich ist schon so gut, das man es für vieles benutzen sollte, klar mag es beim ersten mal verwenden etwas aufwändig sein, sich da einzuarbeiten, aber danach kann man damit doch schon so viele tolle Dinge machen, dass die Mühe sich lohnt.
Ich achte bei solchen Problemen eher auf einfaches und schnelles Programmieren. Mit lexical_cast brauch ich viel weniger Code und muss mir erst gar keine Gedanken darüber machen, wie groß der Puffer sein muss, oder ob ich ein %d, %f oder sonstwas brauche.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige