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

1

17.04.2010, 23:47

arry zurücksetzen

hi leute,

ich habe ein Problem mit einem char arry:

Ich habe den char arry:

Quellcode

1
char acBuff[32];

jetzt soll der arry mit sprintf beschrieben werden, und dann wird der Inhalt in eine Edit Control geschrieben. Das ganze soll mehrmals in einer Funktion passieren, damit ich nicht immer einen neuen arry brauche:

Quellcode

1
2
3
4
5
6
7
8
sprintf(acBuff,"%f",pLight->Position.x); 
SetDlgItemText(g_hMainDlg, IDC_POS_X, acBuff); 

sprintf(acBuff,"%f",pLight->Position.y); 
SetDlgItemText(g_hMainDlg, IDC_POS_Y, acBuff); 

sprintf(acBuff,"%f",pLight->Position.z); 
SetDlgItemText(g_hMainDlg, IDC_POS_Z, acBuff);

Ich denke, das Problem ist, das sprintf dem arry die Zeichen anhängt, so entstehen falsche werte und außerdem entsteht dadurch am ende mal wieder dieser fehler. Gibt es eine Möglichkeit den arry zu leeren, sodas sprintf wieder am anfang los schreibt? memset(), ZeroMemory(), usw. hab ich schon versucht.

danke schonmal
Schwane

2

17.04.2010, 23:59

Normalerweise überschreibt sprintf das Array. Was ist denn genau das Problem? Vielleicht wäre etwas mehr Code auch ganz gut.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

3

18.04.2010, 00:42

Bist du sicher, dass pLight->Position.x vom richtigen Datentyp ist?

Was gibt sprintf zurück?

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

4

18.04.2010, 01:33

Bist du sicher, dass pLight->Position.x vom richtigen Datentyp ist?

Ich denke, dass der Datentyp stimmt, weil in einem Vector normalerweise float Variablen benutzt werden.

SetDlgItemText die richtigen Parameter übergeben?

Versuche mal:
sprintf(acBuff,"%.3f",pLight->Position.y);
%.3f, damit nur 3 Nachkommastellen ausgegeben werden, sprintf gibt manchmal nämlich sehr gerne sehr viele Nachkommastellen aus. Vielleicht läuft dein Array dann über?!

5

18.04.2010, 11:47

So, ich denke ich habe den Fehler gelöst, aber es lag nicht an der Funktion selbst, sondern daran das die Licht-Struktur fehlerhaft war. Diffuse-farbe hatt einen Rot Wert mit etwa 35 Stellen VOR dem Komma^^

trotzdem Danke

Werbeanzeige