Ja / Nein.. auswahl wie geht das? wo liegt mein Fehler?
-
Also ich bin ein blutiger neuling (also wenn ihr mir noch gute tuts geben könnt her damit (hab bisher hauptsächlihc http://www.tutorials.at/ gemacht)
Aber zu meiner Frage...
ICh wolte mich mal an einer Bildlichen auswahl versuchen [zwischen ja und nein]
aber mein code hat irgendwie fehler [vieleicht ist die idee ganz falsch]
sagt einfach mal was dazu bitte
#include <stdio.h> #include <conio.h> int d = 0; int zeigen() { if (d == 0) { printf("<JA>\t NEIN"); } else if (d == 1) { printf(" JA \t<NEIN>"); } } int waehlen() { char press(); press = getch(); if ((press == 75) || (press == 77) ) { if (d == 1) { d=0 } else { d=1 } printf ("\r"); return zeigen(); } int main() { printf ("bitte wählen sie, und bestätigen sie mit Enter:\n"); printf ("\n"); return zeigen(); }
Danke schon mal
-
tutorial:
- http://www.pronix.de/pronix-4.htmlbefehlsreferenzen und man page repository:
- http://www-ccs.ucsd.edu/c/
- http://www.dinkumware.com/manuals/reader.aspx?lib=c99
- http://www.cppreference.com/index.html
- http://man.linuxquestions.org/code, den ich schreiben wuerde:
#include <stdio.h> #include <conio.h> int auswahl(void); int main(void) { unsigned wahl; /* puts macht von selber nochmal ein ein \n dran, also kommt \n\n raus */ puts("bitte wählen sie, und bestätigen sie mit Enter:\n"); wahl = auswahl(); printf("Sie haben \"%s\" gewaehlt", (wahl ? "JA" : "NEIN")); /* trinaeroperator, eine wundervolle sache */ return 0; } int auswahl(void) { unsigned wahl = 0, key; while (1) /* endlosschleife */ { /* ausgabe */ if (wahl) printf("<JA>\t NEIN \r"); else printf(" JA \t<NEIN>\r"); key = getch(); if (key == 13 || key == 10) break; /* enter -> verlassen und return */ if (key != 224) continue; /* pfeiltasten werden mit ascii 224 eingeleitet */ key = getch(); /* eigentliche pfeiltaste lesen */ wahl += (key == 77) - (key == 75); /* 77 -> +1, 75 -> -1, sonst 0 */ wahl %= 2; /* % ist modulo, z.b. 9 % 4 = 1 (der rest bei division) */ } return wahl; }
code ungetestet.
uebrigens ist <conio.h> kein ansi c, sondern win32/dos konsolenprogrammierung und borlandspezifisch (vom compiler abhaengig).konzeptionell war an deinem code falsch, dass du grundlos in funktionen eingeteilt hast. die auswahl ja/nein laesst sich nicht in zwei funktionen teilen. main() sollte null zurueckgeben und nichts anderes.
wenn du programmieren mit "goto" gewohnt bist, wirst du dich an prozedurale programmierung gewoehnen muessen.
-
Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
hab das bei mir so gemacht:
while(u=getch()) { if(u==0x50) // Pfeiltaste UNTEN else if(u==0x48) // Pfeiltaste OBEN
ging irgendwie nur mit HEX und nicht mit INT (war immer 224)...kann man das so lassen?
-
aahhhhh *erleuchtung*
Heisst das getch() gibt 0 bzw. 224 zurück und lässt das Übrige im stdin-buffer?!