Ich bin neu in der Programmierung und verstehe diesen Fehler nicht.C Fehler C2660: 'Menü': Funktion akzeptiert nicht 3 Argumente
Ich habe die gleichen Argumente in der Funktion Menu() und wenn ich die gleiche Funktion in der Funktion menu_principal() aufrufen. In Funktion menu_principal(), ich möchte die switch-case-Anweisung durch die Funktion Menu() mit 'Option' Variable ausführen.
Können Sie bitte helfen?
int main()
{
void menu_principal();
return 0;
}
void menu_principal()
{
bool stop = true;
int option;
const char *title = "MENU PRINCIPAL";
const char *options_menu[] = { "ARTIGOS", "CLIENTES", "ORCAMENTOS", "SAIR" };
int n_options = 4;
do
{
option = Menu(title, options_menu, n_options);
switch (option)
{
case 1:
Menu_Item();
break;
case 2:
Menu_Client();
break;
case 3:
Menu_Billing();
break;
case 4:
stop = false;
break;
}
} while (stop);
}
int Menu(const char *title1, const char *options_menu1[], int n_options1)
{
int OptionSelected= 1;
int key;
bool stop = true;
do
{
system("cls");
gotoxy(5, 3 + OptionSelected); printf(">>");
gotoxy(15, 2); printf("%s", title1);
for (int i = 0; i < n_options1; i++)
{
gotoxy(10, 4 + i);
printf("%s ", options_menu1[i]);
}
do
{
key = _getch();
} while (key != KEY_UP && key != KEY_DOWN && key != KEY_ENTER);
switch (key)
{
case KEY_UP:
OptionSelected--;
if (OptionSelected < 1)
{
OptionSelected = n_options1;
}
break;
case KEY_DOWN:
OptionSelected--;
if (OptionSelected > n_options1)
{
OptionSelected = 1;
}
break;
case KEY_ENTER:
stop = false;
break;
}
} while (stop);
return OptionSelected;
}
Wenn Sie die Funktion 'menu_principal' in' main' aufrufen wollen, brauchen Sie nicht 'void', nur' menu_prinipal(); '. – bejado
'void menu_principal();' teilt dem Compiler lediglich mit, dass irgendwo eine Funktion namens 'menu_principal' existiert, die keine Argumente annimmt und nichts zurückgibt. Dieses Konstrukt ruft nicht die Funktion auf, also macht Ihr gesamtes Programm praktisch nichts. – ForceBru
Vorwärtsdeklaration der 'Menü' Funktion könnte helfen. Was ich damit meine, ist dieses 'int Menü (const char * title1, const char * options menu1 [], int n_options1);' über 'main'. Nicht IN Haupt, sondern darüber. Können Sie bestätigen, dass Sie das getan haben? – smac89