LordoftheBord
Mitglied
Hallo
Ich schreibe gerade an einem Taschenrechner, welcher alle eingegebenen Zahlen und Ergebnisse in einer externen Datei abspeichert. Der Übersicht halber, habe ich die einzelnen Aufgaben in Funktionen gepackt. Unter anderem habe ich einen Menue Funktion aus welcher man die anderen Funktionen aufrufen kann. Doch klappt dies leider nicht. Wenn ich das Programm starte und ich eine Zahl eingebe, welche normalerweise eine andere Funktion aufrufen sollte, wird das Programm beendet. Hier der Code:
Könnt ihr mir sagen wo der Fehler liegt?
P.S.: Bin noch ziemlicher C Noob. Können also ein paar doofe Fehler drin sein...
mfg
LotB
Ich schreibe gerade an einem Taschenrechner, welcher alle eingegebenen Zahlen und Ergebnisse in einer externen Datei abspeichert. Der Übersicht halber, habe ich die einzelnen Aufgaben in Funktionen gepackt. Unter anderem habe ich einen Menue Funktion aus welcher man die anderen Funktionen aufrufen kann. Doch klappt dies leider nicht. Wenn ich das Programm starte und ich eine Zahl eingebe, welche normalerweise eine andere Funktion aufrufen sollte, wird das Programm beendet. Hier der Code:
Code:
#include <stdio.h>
#include <conio.h>
void laden();
void taschenrechner();
void menue();
int main()
{
menue();
return 0;
}
void menue()
{
char eingabe;
printf("Der Taschenrechner");
printf("\n\n <1> : Taschenrechner");
printf("\n <2> : Protokollierung");
getchar();
eingabe = getchar();
switch(eingabe)
{
case '1': taschenrechner();
break;
case '2': laden();
break;
}
return;
}
void taschenrechner()
{
int a,b,ergebnis;
char opperator;
FILE *fp;
printf("Geben Sie die erste Zahl ein : ");
scanf("%d",&a);
printf("\nGeben Sie die zweite Zahl ein : ");
scanf("%d",&b);
printf("\nGeben Sie den Opperator ein : ");
getchar();
opperator = getchar();
switch(opperator) // variabel für operation eingeben
{
case '+': ergebnis = a + b;
break;
case '-': ergebnis = a - b;
break;
case '*': ergebnis= a * b;
break;
case '/': ergebnis = a / b;
break;
}
printf("\nDas Ergebnis = %d",ergebnis);
fp = fopen("datei.dat","a");
fprintf(fp,"%d + %d = %d\n",a,b,ergebnis);
fclose(fp);
getch();
return;
menue();
}
void laden()
{
int i,zahl_a[10],zahl_b[10],ergebnis[10];
FILE *fp;
i=0;
fp = fopen("datei.dat","r");
while (!feof(fp))
{
fscanf(fp,"%d + %d = %d",&zahl_a[i],&zahl_b[i],&ergebnis[i]);
printf("%d + %d = %d",&zahl_a[i],&zahl_b[i],&ergebnis[i]);
i++;
}
getch();
return;
menue();
}
Könnt ihr mir sagen wo der Fehler liegt?
P.S.: Bin noch ziemlicher C Noob. Können also ein paar doofe Fehler drin sein...
mfg
LotB