Ich nahm Code von online http://www.codewithc.com/quiz-game-mini-project-in-c/ und ich bekam Fehler im Code, so dass ich den Code zu reduzieren. Ich erhalte einen Fehler [undefinierter Verweis auf: 'show_record'] Ich kann nicht lösen. Jede Hilfe oder Vorschläge zur Lösung dieses Problems wird sehr geschätzt. HierC Programmierfehler: [undefined Verweis auf: 'show_record']
ist ein Ausschnitt aus dem Code:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
void show_record();
void reset_score();
void help();
void edit_score(float, char[]);
int main()
{
int countr, r, r1, count, i, n;
float score;
char choice;
char playername[20];
mainhome:
system("clear");
printf("\n\t\t\t WELCOME ");
printf("\n\t\t\t to ");
printf("\n\t\t\t THE GAME ");
printf("\n\t\t > Press S to start the game");
printf("\n\t\t > Press V to view the highest score ");
printf("\n\t\t > Press R to reset score");
printf("\n\t\t > press H for help ");
printf("\n\t\t > press Q to quit ");
printf("\n\t\t________________________________________\n\n");
choice = toupper(getchar());
if (choice == 'V')
{
show_record();
goto mainhome;
}
void show_record()
{
system("clear");
char name[20];
float scr;
FILE *f;
f = fopen("score.txt", "r");
fscanf(f, "%s%f", &*name, &scr);
printf("\n\n\t\t*************************************************************");
printf("\n\n\t\t %s has secured the Highest Score %0.2f", name, scr);
printf("\n\n\t\t*************************************************************");
fclose(f);
getchar();
}
}
1. Die Definition von Funktionen in Funktionen ist GCC-Erweiterung und sollte nicht verwendet werden, es sei denn, es ist notwendig. 2. '& * name' kann einfach als' name' geschrieben werden – MikeCAT
Ihre Einrückung ist schlecht, daher ist sie hier nicht sichtbar, aber Sie haben gerade versucht, eine Funktion 'show_record()' * innerhalb * einer anderen Funktion, 'main' zu deklarieren . Sie können das nicht in Standard C tun. (Ich habe gerade Ihren Einzug aktualisiert, um dies deutlicher zu machen). – lurker
Verschieben Sie die letzte geschweifte Klammer vor die Zeile 'void show_record()'. Dies sollte das Problem beheben. – dasblinkenlight