Ich suche momentan nach einer Möglichkeit, den Nutzer eines Programms durch Eingabe selbst bestimmen zu lassen, welche Funktion ausgeführt werden soll.
Jedoch habe ich keine Lust für jede, zur Verfügung stehende Funktion eine eigenes if zu setzen und die Eingabe mit den Funktionsnamen abzugleichen.
Ich dachte mir, ein pointer auf eine Funktion würde sich hierzu gut eignen, doch stehe ich nun leider vor einem Problem.
Da ich ja gerade erst bei dem Versuch bin, das Prinzip heraus zu finden, habe ich es einfach einmal so
Code: Alles auswählen
#include <stdio.h>
int test(int i)
{
printf("%d",i);
return 0;
}
int main()
{
int (*fct) (int a);
char c[50];
fct=scanf("%s",c);
(*fct)(1);
return 0;
}
Allerdings meldet mein Compiler dann : "Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung"
Bisher dachte ich, der Zeiger wäre bereits für Funktionen mit einem int-Rückgabewert geeignet.
Ich habe versucht es zu casten und habe die Zeile
Code: Alles auswählen
fct=scanf("%s",c);
Code: Alles auswählen
fct=(int*)scanf("%s",c);
Könnte mir bitte jemand sagen, was genau ich falsch mache, oder mir einen anderen Ansatz vorstellen?