|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
p.l.o.u. Gast
|
Verfasst am: 26.08.2002, 16:25 Titel: Fehler?!? |
|
|
Das Programm auf Seite 90 bis 92 veruracht bei mir einen Fehler, nachdem ich es ausführe fragt das Programm nach der Zahl, berechnet die Kreisfläche dann fragt mich ob ich noch eine Berechnung dürchführen will. Wenn ich jetzt mehr als den Buchstaben j eingebe(also: ja), gibt er mir endlos:
Die Kreisfläche ist 0
Weitere Berechnung durchführen?
Die Kreisfläche ist 0
Weitere Berechnung durchführen?
Die Kreisfläche ist 0
Weitere Berechnung durchführen?
Die Kreisfläche ist 0
Weitere Berechnung durchführen?
.
.
.
aus ohne das ich darauf einfluss nehmen kann.
Das selbe ist auch mit dem Beispiel auf der CD.
Ach ja und seit ich meinen Rechner neu installiert habe und so auf Visual C++ neu installieren musste macht er keine Umlaute (also: ä, ö und ü) mehr sonder setzt ersetzt die Zeichen beim Programmstart durch die Zeichen der Englischen Tastatur |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 26.08.2002, 18:51 Titel: |
|
|
Das 1. ist wohl ein Programmier- oder Logikfehler des Programms.
Das 2. Problem: Hast du denn den deutschen Tastaturtreiber instelliert? - Sprich sind neben den Umlauten noch die Sonderzeichen anders und y und z vertauscht? _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 26.08.2002, 19:52 Titel: jaja...kenn ich |
|
|
dein Programm erwartet die Eingabe eines Characters (char). das ist genau ein Zeichen. wenn du nun mehr eingibst, nimmt das Programm das erste Zeichen (j) und - jetzt wirds etwas merkwürdig - "speichert" den Rest deiner Eingabe für die nächste Eingabe.
Da du als nächstes einen Integer (int) eingeben sollst, aber einen Buchstaben (a) noch von deiner letzten Eingabe "gespeichert" hast, stürzt das Programm ab.
kurz gesagt: du versuchst - ungewollt - einen char an einen int zuzuweisen.
Für "richtige" Anwendungen, die nicht nur Übungszwecken dienen, solltest Du bei solchen Fällen erst einem char das erste Zeichen der Eingabe zuweisen (leider weiß ich gerade nicht genau, wie das geht). Dann hast du mit Sicherheit nur ein Zeichen in deinem char.
cu Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
p.l.o.u. Gast
|
Verfasst am: 26.08.2002, 20:58 Titel: |
|
|
ist schon die Deutsche Tastatur auch bei Visual C++ sind die Umlaute da nur wenn ich das Programm Compiliere und dann starte sind die Umlaute durch die englischen Tastaturzeichen vertauscht
z.B.
Unter VC++:
cout << "Weitere Berechnung durchführen?\n";
In der Anwendung:
cout << "Weitere Berechnung durchf³hren?\n"; |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 26.08.2002, 21:04 Titel: |
|
|
Ach so, das mit den Umlauten ist, weil der Quelltext in Ansi geschrieben ist, und die Terminalausgabe Ascii verwendet, nichts weiter. Das hat nichts mit der Tastaturbelegung zu tun.
Schaue in einer Ascii-Tabelle Nach, welche Zeichenwerte für welches Zeichen verwendet werden muß, oder Programmiere ohne Umlaute (ae, oe, ue, ss)
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
DaN00b JLI'ler
Anmeldedatum: 10.08.2002 Beiträge: 159
Medaillen: Keine
|
Verfasst am: 27.08.2002, 20:59 Titel: |
|
|
ich würde so und so umlaute nicht grad empfehlen
selbst in meinem kommentaren schreib ich ae oe ue _________________ Carpe Diem - Seize the day - Nütze den Tag! |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|