Re: str.putintf(...) Kategorie: Programmierung (von Grossmann Michael - 4.12.2005 11:16) | ||
Als Antwort auf Re: str.putintf(...) von KönigDichBauch - 1.12.2005 17:17 | ||
| ||
> Hallo Michael, > > > ich benutze das OSOPT V3.0 und habe den sys0002.hex Treiber geladen. Sobald ich in meinem > > Programm den Befehl str.putinf(....) einfüge, hängt sich das Programm auf und cc2 startet neu. > > Klammere ich den Befehl aus, läuft alles. > > > > Beispiel: Ich will die beiden Integerzahlen mit einer Nachkommastelle in der Stringvariablen > > s3 auf einem Display anzeigen. > > > > string s3; > > int Zahl1,Zahl2; > > Zahl1 = 2566; > > Zahl2 = 2414; > > > > s3 = "Test: "; > > s3 = s3 + str.putintf(s3,Zahl1,1); > > s3 = s3 + " "; > > s3 = s3 + str.putintf(s3,Zahl2,1); > > Ja, wenn man sich das anschaut scheint im ersten Moment alle OK, auch die Syntaxprüfung und > der Compiler mosern nicht rum und wir haben einen Autoboot, wenn wir das Programm starten. > > Aber str.putinf ist so deffiniert: > > inline function putintf ( string s, int value, int format ) > > ein Pascaler würde das procedur und nicht function nennen. Man mu� es also so umstellen: > > string s3; > int Zahl1,Zahl2; > Zahl1 = 2566; > Zahl2 = 2414; > > str.clear(s3); > str.putstring(s3,"Test: "); > str.putintf(s3,Zahl1,1); > str.putstring(s3," "); > str.putintf(s3,Zahl2,1); > > > und dann klappt es. Aber natürlich nicht mit Nachkommastellen. Ein Integer hat keine Kommastellen > und der zweite Parameter in putintf ist die Anzahl der Stellen, die minimal erzeugt werden. Daher nehme > ich an, das du eher so was wolltest: > > string s3; > float Zahl1,Zahl2; > Zahl1 = 256.6; > Zahl2 = 241.4; > > str.clear(s3); > str.putstring(s3,"Test: "); > str.putfloatf(s3,Zahl1,1); > str.putstring(s3," "); > str.putfloatf(s3,Zahl2,1); > > > Schade ist aber, das der Compiler das erste Beispiel durch lässt. > > Gru� > Thomas > Danke Thomas für deine Hilfe Michael | ||
Antwort schreiben Antworten: |