http://www.pronix.de -> Forum -> C-Programmieren -> Code-Schnipsel

Unterseiten

Code-Schnipsel

Moderatoren: broesel, Martin Conrad, Patrick

Thema: [EDIT] - Sichere Eingabe

  • (nur registrierte Mitglieder)

[EDIT] - Sichere Eingabe

Zeisel am 06.10.2006 um 22:34

OK, da noch keiner geantwortet hat, habe ich mir erlaubt, mein "Mammutwerk" wieder zu entfernen... war etwas voreilig. Habe den selben Zweck mit 1/3 Quellcode sauberer gelöst. Werde erst das Buch zu Ende durcharbeiten, bevor ich wieder Codeschnipsel verschnipsel. Dennoch hier mein kürzeres Listing für die, die über mein vorheriges Listing so schmunzeln mussten wie ich jetzt...
Zitat:
Er frohlockt nicht, wenn er Erfolg hat, und er
jammert nicht, wenn er scheitert.
Tschuang-Tse

Oder auch: Mut zur Bescheidenheit...

Gruß Zeisel


/* get_num.cpp */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <ctype.h>

void main(void) {

  long zahl;
  int stellen, i, tmp;
  
  printf("\n\n\t\t>>> Prorgammende mit '0' <<<\n\n");
  
  while (1){
    printf("\n Vieviele Stellen soll die Zahl haben? ");
    do {
      stellen = getch();
    }
    while (0 == isdigit(stellen));
    if ( stellen  < '1'){
      printf("\n\n\tAbbruch durch Benutzer!\n");
      exit (EXIT_SUCCESS);
    }
    stellen -= '0'; zahl = 0;
    printf("%d OK, bitte Zahl eingeben: ", stellen);
    for (i=0; i < stellen; i++){
      putchar(tmp = getch());
      /* tmp ist noch ein char, daher '0' abziehen */
      tmp -= '0';
      /* einer, zehner, ...  */
      zahl += (long)(tmp * pow(10, (stellen-(i+1))) );
    }
    printf("\n\n\tSie gaben %d ein.\n", zahl);
  }
}
 
  • (nur registrierte Mitglieder)