Variablen tip überprüfen
-
mal ne frage:
wie kann ich überprüfen das der benutzer eine zahl eingab (1 - 6). so das es eine fehlermeldung gibt wenn man eine grössere oder kleinere zahl oder eine zahl mit einem , angibt. Und auch wen man einen Buchstaben angibt?und noch was, man kann ja selber funktionen machen, müssen die in der gleichen Datei sein wie die main () Funktion oder kann ich sie in einer seperaten datei abspeichern und dann irgend wie einbingen?
ich habe da eben recht viele, weil ich das am ausprobieren bin!
es folgen warscheinlich noch mehr fragen!!
-
AQE89 schrieb:
mal ne frage:
wie kann ich überprüfen das der benutzer eine zahl eingab (1 - 6). so das es eine fehlermeldung gibt wenn man eine grössere oder kleinere zahl oder eine zahl mit einem , angibt. Und auch wen man einen Buchstaben angibt?Hängt davon ab wie du die "Zahl" einliest.
AQE89 schrieb:
und noch was, man kann ja selber funktionen machen, müssen die in der gleichen Datei sein wie die main () Funktion oder kann ich sie in einer seperaten datei abspeichern und dann irgend wie einbingen?
// foo.h void func(void);
// foo.c void func(void) { // mach was return; }
// main.c #include "foo.h" int main(void) { func(); return 0; }
-
oh danke für die schnelle antwort, ich programmiere in C.
zu erstens, ich mache es noch mit scanf ()
das andere verstehe ich nicht ganz. das schreibt mann ja alles in eine datei, so wie ich das gesehen habe, ich meine es so:
datei1 (mit dem namen funktionen.c):
int funktion1 (void) { printf("T"); ....../*hier gets weiter*/ }
dann eine 2 datei(mit dem nahmen hauptmenu.c):
int main (void) { funktion1 (); ..... }
so meinte ich es, wen ich dich falsch verstanden habe, tut es mir leid!
-
1:
scanf() gibt die Anzahl der korrekt zugewiesenen Felder zurück.
#include <stdio.h> int main( ) { int number; if( scanf( "%i", &number ) && ( 1 <= number ) && ( number <= 6 ) ) { printf( "Eingabe gültig!\n" ); } else { printf( "Engabe ungültig!!!\n" ); } }
2:
Du machst es bis auf das dir fehlende Headerfile genauso wie TactX
Greetz, Swordfish
-
Bin selber C Neuling, aber zu Problem 1, wieso machste das nicht einfach mit switch() ??
[...] int zahl; scanf("%i",&zahl); switch(zahl) { case 1 : anweisung; break; case 2 : anweisung; break; //Dann halt immer so weiter bis case 6... [...] default : printf("FALSCH"); //default wird dann ausgeführt wenn "zahl" keiner der Case Anweisungen entspricht. }
Ich hoff mal ich hab mich dabei nicht vertan
-
danke Gast_Kaktus621, aber leider, lese ich im ersten Teil ein(dort habe ich das problem), und dann am schluss des programms wird dann alles ausgewertet!
noch was wen jemand einen buchstaben eingibt, wie sehe ich da das es nicht klapt?
@ Swordfish werde es mal in betracht zihen!
-
AQE89 schrieb:
noch was wen jemand einen buchstaben eingibt, wie sehe ich da das es nicht klapt?
Hat Swordfish doch schon beantwortet:
sscanf(...) liefert die Anzahl der korrekt gelesenen Elemente zurück
Wenn du also eine Zahl einlesen willst und scanf() keine 1 liefert
weißt du das die Eingabe keinem Integer entspricht.Warum es kein Integer ist(Buchstabe, Satzzeichen, ...) mußt du,
wenn es dich interessiert, schon alleine rausbekommen.