Re: str.putintf(...) Kategorie: Programmierung (von KönigDichBauch - 1.12.2005 17:17) | ||
Als Antwort auf str.putintf(...) von Grossmann Michael - 1.12.2005 16:54 | ||
| ||
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 | ||
Antwort schreiben Antworten: Re: str.putintf(...) (von Grossmann Michael - 4.12.2005 11:16) |