PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c++ Taschenrechner



Wusaaaaa
04.12.2008, 18:00
So, ich hab von meinem Lehrer die Aufgabe bekommen einen Taschenrechner zu programieren, welche ich auch gelöst habe. Nun verlang aber aber noch, dass es bei Eingabe einer nicht Ziffer eine Fehlermeldung kommt und das Programm wieder auf Anfang gestellt wird. Da mir nichts einfällt wie ich dies machen könnte wollte ich mal euch fragen :D

greetZ Wusaaaaa

Darkraiser
04.12.2008, 18:03
ist relativ einfach .. ^^

du liest die Zahl als String ein .. wandelst sie in ASCII um und so kannst du abfragen ob es eine Zahl ist ^^

mfg

blackberry
04.12.2008, 18:47
Beispiel:


#include <stdlib.h>
#include <stdio.h>
#include <string.h>


int is_numeric(char *);
int read_int(int *);

int main(void)
{
int i1;
int i2;

for(;;)
{
printf("Geben Sie zwei Zahlen ein\n"
"Zahl 1> ");
if (!read_int(&i1))
{
printf("Ihre Eingabe ist keine Zahl\n");
continue;
}
printf("Zahl 2> ");
if (!read_int(&i2))
{
printf("Ihre Eingabe ist keine Zahl\n");
continue;
}
printf("%d + %d = %d\n\n", i1, i2, i1 + i2);
}
return 0;
}

int is_numeric(char *buffer)
{
if (buffer[0] == '-' && buffer[1] >= '0' && buffer[1] <= '9')
buffer++;
for(; *buffer >= '0' && *buffer <= '9'; buffer++);
return (*buffer == 0);
}

int read_int(int *i)
{
char buffer[100];

fgets(buffer, sizeof(buffer) - 1, stdin);
if (buffer[strlen(buffer) - 1] == '\n')
buffer[strlen(buffer) - 1] = 0;
*i = atoi(buffer);
return is_numeric(buffer);
}

Wusaaaaa
04.12.2008, 21:17
So, habs verstanden, war wirklich einfach.

danke :D

greetZ Wsuaaaaa

-[RiDER]-
04.12.2008, 21:48
Hi :D

In der Praxis dürfte isdigit() dafür geeignet sein. :)
GreetZ RiDER :D :D :D