Probleme mit Kommazahlen - Runtime Error
-
sicherheitsfan schrieb:
die eingabe ist unsicher!
Was soll an der Eingabe denn unsicher sein? Er hat die Eingabelänge doch ganz klar begrenzt.
-
was hast du den für einen kompiler ?
wenn du eine gui hast dann suchmal ein menü wo du das wegoptimieren der überschüssigen funktionen verhindertfloating point not loaded -> keine verlinkung
-
rumprobieren schrieb:
sicherheitsfan schrieb:
die eingabe ist unsicher!
Was soll an der Eingabe denn unsicher sein? Er hat die Eingabelänge doch ganz klar begrenzt.
buchstabeneingabe macht probs
-
sicherheitsfan schrieb:
buchstabeneingabe macht probs
Das hast du schonmal gesagt.
-
Bzw. welche Buchstaben zum Teufel?
-
rumprobieren schrieb:
sicherheitsfan schrieb:
buchstabeneingabe macht probs
Das hast du schonmal gesagt.
wann
rumprobieren schrieb:
Bzw. welche Buchstaben zum Teufel?
A, a, B, b, ... Z, z.
Und alle anderen Zeichen, die keine Zahl darstellen.
-
was hast du den für einen kompiler ?
wenn du eine gui hast dann suchmal ein menü wo du das wegoptimieren der überschüssigen funktionen verhindertIch arbeite mit MS Visual Studio 2005 und dem zugehörigen Compiler.
Ich mach mich da mal auf die Suche, viell. find ich den Punkt ja.
Danke dafür.
0xyD
-
Hätte da noch eine Frage:
Wie genau kann ich denn meine Eingabe auf unpassende Zeichen kontrollieren?
Momentan beende ich mein Programm ja knallhart mit einem EXIT_FAILURE in dem Teil hier:
scanf("%i", &anzahl); //<===== if(anzahl > 0 && anzahl <= 20) { doubleArrayEingabe(a, anzahl); doubleArrayAusgabe(a, anzahl); } else { printf("Fehlerhafte Eingabe.\n"); return EXIT_FAILURE;
Was ja auch noch Ok ist, ich könnte ja evtl. ne Schleife drum packen die jede Eingabe prüft und sich so lange wiederholt, bis alle Eingaben korrekt drin sind.
Nun möchte ich an dieser Stelle hier:
for(int i = 0; i < anzahl; i++) { //a[i] = 0.0; printf("a[%i]: ", i); scanf("%lf", &a[i]); //<==== }
direkt nach der Eingabe prüfen, ob die erforderlichen Eingaben richtig gemacht wurden, aber eben ob es sich um Eingaben im "double" Format handelt und keine alphabetischen Zeichen oder Sonderzeichen.
Dazu müsste es doch eine fertige Funktion geben, oder? Ich suche schon die ganze Zeit aber ich glaube, ich sehe den den Wald vor lauter Bäumen nicht mehr...
Gruss
0xyD
-
ja, oder so schrieb:
oder so deklarieren:
double a[20] ={0.0};double a[20] = {};
Reicht übrigens vollkommen aus.
-
0xyD schrieb:
for(int i = 0; i < anzahl; i++) { //a[i] = 0.0; printf("a[%i]: ", i); scanf("%lf", &a[i]); //<==== }
..
Gruss
0xyD
int NoError = 0; int i=0; ... for(i=0; i<anzahl; i++){ printf("a[%i]: ",i); NoError = scanf("%lf", &a[i]); if(NoError == 0){ printf("falsche Eingabe"); while(getchar()!= '\n'); i = i - 1; continue; } }
habs nicht probiert muss aber gehen bzw. so in der richtung