PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] C-Programmierung



powder999
19.01.2012, 16:52
Ich hätte da mal kurz ne Frage:
Wenn ich in C programmiere, dass eine unsichtbare Eingabe erfolgt und dafür die getch-Funktion nehme und diese mit if verknüpf, dann wird nach dem ersten drücken der Taste nur die erste if-Bedingung kontrolliert, wenn aber die zweite oder dritte if-Bedingung richtig wär, muss ich auch so oft draufdrücken! Was mach ich falsch?
Hier mal kurz zur Erklärung:(dev C++ 4.9.9.2)
...
...
...
...
if (getch("%d",&eingabe)=='a')
{
blablab
}
else if (getch("%d",&eingabe)=='b')
{
blablab
}
else if (getch("%d",&eingabe)=='c')
{
blablab
}

danimath
19.01.2012, 17:57
Wenn Du z.B. "b" drückst, dann frisst das getch im ersten if schon dieses Zeichen, so dass der Eingabepuffer wieder leer ist. Besser: vor der if-Konstruktion einmal getch und das Ergebnis in eine Variable speichern, und die Variable in der if-Konstruktion auswerten.

viele Grüße
Andreas

powder999
19.01.2012, 18:04
und wie mach ich das?

powder999
19.01.2012, 18:05
int eing;
int eingabe;
int zufallszahl;
getch("%c",&eingabe)=eing;
if (eing=='l')
{
srand(time(0));
zufallszahl = 1+(rand() % (10-1));
printf("Die Zufallszahl ist diesmal %d\n\n",zufallszahl);
}
else if (eing=='m')
{
srand(time(0));
zufallszahl = 1+(rand() % (25-1));
printf("Die Zufallszahl ist diesmal %d\n\n",zufallszahl);
}
else if (eing=='s')
{
srand(time(0));
zufallszahl = 1+(rand() % (50-1));
printf("Die Zufallszahl ist diesmal %d\n\n",zufallszahl);
}

powder999
19.01.2012, 18:21
Das geht ned!!

radbruch
19.01.2012, 18:38
Variable links vom = wird mit dem Wert rechts vom = gefüllt:

eing = getch("%c",&eingabe); wäre richtiger

danimath
19.01.2012, 18:39
Zeile 4:

eing=getch("%c",&eingabe);

powder999
19.01.2012, 18:47
Danke für die schnellen Antworten, ihr seid super! ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-):p

avrrobot
19.01.2012, 20:38
Ach ja, ich habe früher auch immer dev c++ verwendet, aber ich finde Code::Blocks deutlich besser.
Du kannst es dir ja einfach mal anschauen.

Felix G
19.01.2012, 21:45
Ach ja, ich habe früher auch immer dev c++ verwendet, aber ich finde Code::Blocks deutlich besser.
Du kannst es dir ja einfach mal anschauen.Und ich habe früher immer Code::Blocks verwendet, bis ich eines Tages auf Eclipse (http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr1) gestoßen bin...
seitdem kommt mir sowas wie Code::Blocks nich mehr auf die Platte ;)

Eclipse ist super komfortabel und hat sehr viele geile Funktionen, mit denen man extrem effizient programmieren kann.

danimath
21.01.2012, 18:08
vi und make - mehr braucht man nicht:lol::lol::lol::lol::twisted::evil::twisted:: lol::lol: