Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Switch Anweisung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 6 Beiträge
HueHang

Hier ist eine kleine Erklärung:
http://www.linuxforums.org/forum/program...html#post355499
Matze84

Zitat:
Original von HueHang
code:
1:
scanf(" %c",&a);

also mit einem Leerzeichen vor "%c", dann funktioniert es.


DANKE
Aber kannst du (oder jmd anders) mir evtl auch sagen warum ich da plötzlich ein "Leerzeichen" machen muss?
Weil erklären kann ICH mir das nicht.
unglücklich

Lg Matze
HueHang

code:
1:
scanf(" %c",&a);

also mit einem Leerzeichen vor "%c", dann funktioniert es.
Matze84

Ja das Programm hatte sich auch irgendwie aufgehängt... Also es kam jedenfalls ein Fehler.....
Aber selbst mit
code:
1:
2:
3:
scanf("%c",&a);

springt er in den defaultZweig.
Ich kann nichtmal mein "a" (also meine antwort) eingeben.
Karlito

Hallo,

a ist undefiniert und es wundert mich, dass das Programm nicht abstürzt.

In Zeile 34 musst du die Adresse von a übergeben und nicht a.

Also so:
code:
1:
2:
3:
scanf("%c",&a);


VG,

Karlito
Matze84 Switch Anweisung

Ich habe folgendes Programm geschrieben um einfach zu üben.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
 #include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int i;
bool fehler=false, wiederholung=false;
char a;
do
{
do
{
puts("Geben Sie eine Zahl zwischen 1 und 30 ein";);
scanf("%d",&i);
if(i<1||i>30)
{
puts("Diese Zahl ist ungültig!";);
fehler=true;
}
else
{
fehler=false;
}
}
while(fehler);

while(i>0)
{
putchar('a');
i--;
}
puts("Das war lustig.nnNicht wahr?";);
puts("Willst du das nochmal wiederholen? (j/n)";);
scanf("%c",a);
switch(a)
{
case'j' : wiederholung=true;
break;
case'n' : wiederholung=false;
break;
default : puts("Egal was du eingegeben hast, es passt mir nicht!nIch werde mich jetzt selbst beenden. Ciao!n";);
}
}
while(wiederholung);
return 0;
}


Es soll so oft "peep" machen wie der User eingegeben hat (zwischen 1 und 30 mal).
Wenn die eingegegebene Zahl nicht zwischen 1 und 30 liegt soll er einen Fehler melden und nochmal bitten die Zahl einzugeben.
Wenn das "Peep" "Peep" fertig ist soll der User gefragt werden, ob er das wiederholen möchte.
Ich habe versucht das mit switch zu machen, weil ich genau das üben wollte. (es würde sicher auf mit IF gehen)

Nun zu der Frage:
Wenn ich das ganze Schritt für Schritt debugge, dann springt er zwar in die switch Anweisung, aber immer zu "default" und das will ich ja nicht.

Was habe ich bei der switch Anweisung falsch gemacht?
Lg matze