Fehler!lagerverwaltung laesst sichNichtKompilieren

Schoenen guten Tag, ich hab hier irgnedwo ein Fehler drin, den ich selbst leider nicht beheben kann. Ich bitte deshalb um hilfe.
Schon mal Danke im voraus.

#include
#include
#include

struct lagerverwaltung
{
long artikelnummer;
char artikelbezeichnung;
int anzahl_arikel;
struct lagerverwaltung *next;
};

struct lagerverwaltung *first = NULL;

void read_lagerverwaltung(void)
{
long an;
char at [100];
int aa;

printf(„Artikelnummer : „);
scanf (“%1d“,&an);
fflush(stdin);
printf("Artikelbezeichnung: ");
fgets (at, sizeof(at), stdin);
printf(„Anzahl der Artikel: „);
scanf (“%d“,&aa);

insert_lagerverwaltung(an,at,aa);
}

void insert_lagerverwaltung(long art_nr, char art_tit[], int anz-art)
{
/* Sie benoetigen eine Zeiger fuer den Zugriff auf die einzelnen
Elemente der Struktur*/
struct lagerverwaltung *lager_ptr;

/* Bevor Sie eine Element in die Liste einfuegen, muss ueberpruft
werden, ob sich ueberhaupt schon eine Element in dier List befindet.
Dafuer haben Sie ja den Strukturzeiger first deklariert und mit dem
Null - Zeiger initalisiert*/
if (first == NULL)
{
/* Es ist noch kein Element in der liste. Somit muessen
Sie nun Speicher fuer das erste Element in der Liste
anfordern*/
first = (struct lagerverwaltung)* malloc(sizeof(struct
lagerverwaltun));

if (first == NULL)
{
printf(„Speicherplatzmangel!!\n“);
exit(0);// Programmende
}
else
{
first-> artiklenummer = art_nr;
strcpy(first -> artikelbezeichnung, art_tit);
fist-> anzahl_artikel = anz_art;
/* Nun haben Sie alle Elemente der list an die Adresse
von „first“ eingefuegt. Nun muessen Sie die Adresse
fuer das naechste Element in der Liste vergeben. Und
dies ist erst mal der Null - Zeiger.*/
first -> next = NULL;
}
else
{
/* Es Befindet sich minderstens ein Element in der Liste. Nun
druchlaufen Sie die List so lange, bis Sie auf ein Element stossen,
welches auf NULL zeigt. Dies is das letzte Element der Liste.
Dort haengen Sie das neue Element an*/
lager_ptr=first;
/* Der Zeiger lager_ptr bekommt die Adresse des erste Elements
in der liste*/
/*Nun durchlaufen Sie mit einer while-Schleife Elemente fuer
Elemente, bis Sie eine bestimmtes Element in der Liste finde,
bei dem der next -Zeiger auf NULL zeigt*/
while(lager_ptr->next!=NULL)
lager_ptr = lager-ptr->next;
/* Wenn Sie hier angelant sind, haben Sie das letzte Element
in der Liste gefunden. Nun benoetigen Sie wieder einen Speicherplatz
zum Einfuegen des neuen Elements in der Liste*/
lager_ptr->next=(struct lagerverwaltung *) malloc(sizeof(struct
lagerverwaltung));
if (lager_ptr->next == NULL)
{
printf(„Speicherplatzmangel!!!\n“);
exit (0); // Programmende
}
else
{
/* Nun fuegen Sie das neue Element am Ende der
Liste ein, wie Sie es schon beim ersten Element der Liste
gemacht haben*/
/*lager_ptr auf die Adresse des neu reservierten Speichers
richten*/
lager_ptr = lager-ptr->next;
lager-ptr->artikelnummer = art_nr;
strcpy(lager_ptr->artikelbezeichnung,
art_tit);
lager_ptr->anzahl_artikel = anz_art;
lager_ptr->next=next;
}
}
printf("\nNeuer Artikel hinzufuegen\n\n");
}
void outout_lagerverwaltung()
struct lagerverwaltunf *lager_ptr;

if(first == NULL)
printf(„Keine Daten zum Ausgeben vorhanden!\n“);
else
{/*Zeiger lager_ptr auf das erste Element*/
lager_ptr = first;
while(lager_ptr != NULL)
{
printf(„Artikelnummer : %1d\n“,lager_ptr -> artikelnummer);
printf(„Artikelbezeichnung:%s“,lager_ptr -> artikelbezeichung);
printf(„Anzahl Artikel: %d\n\n“, lager_ptr-> anzahl_artikel);
lager_ptr = lager_ptr->next;
}
}
}

int main ()

int abfrage;

do
{
printf(" Neue Daten einlesen\n");
printf(" Alle Daten ausgeben\n");
printf(" Ende\n\n");
printf(„Ihr Auswahl: „);
scanf (“%d“,&abfrage);
fflush(stdin);
switch
{
case 1: read_lagerverwaltung();
break;
case 2: output_lagerverwaltung();
break;
case 3: printf(„Bye\n“);
break;
default: printf(„Falsche Eingabe!\n“);
}
}while(abfrage != 3);
return 0:
}

Hallo.

ich hab hier irgnedwo ein Fehler drin, den
ich selbst leider nicht beheben kann. Ich bitte deshalb um
hilfe.

Code ist bitte im

 .... 

anzugeben.
Mit Visual C++ 6.0 ergibt die Kompilierung des Quellcodes rund 26 Fehler und 2 Warnungen. Fehler sind z.B. fehlerhafte Variablendeklaration, „cpp(47) error C2100: Zeigeroperation ungueltig“, „cpp(78) : error C2227: Der linke Teil von ‚->next‘ muss auf Klasse/Struktur/Union zeigen“, usw…

Also noch einiges zu reparieren…

mfg M.L.

Das Programm wurde in c programmiert nicht in c++, dementsprechend kein c++ Fehlercode angeben.

MFG

Darius

Hallo!

Schoenen guten Tag, ich hab hier irgnedwo ein Fehler drin, den
ich selbst leider nicht beheben kann. Ich bitte deshalb um
hilfe.

Da sind einige (Abtipp-)Fehler, main() ohne öffnende gescheifte Klammer, switch ohne Angabe einer Variablen, irgendwo ein Doppelpunkt statt eines Semikolons. Hangel Dich von Fehlermeldung zu Fehlermeldung, dann müsstest Du eigentlich alle Fehler finden. Zeilennummer ist ja angegeben.

Jan

Die Sache ist die, dass mein Programm das „insert“ als Fehler anzeigt. Ich frage mich nur warum er dies tut? Hab ich da irgendwas vorher vergessen?

MfG

Hallo!

Die Sache ist die, dass mein Programm das „insert“ als Fehler
anzeigt. Ich frage mich nur warum er dies tut? Hab ich da
irgendwas vorher vergessen?

Ein Bezeichner „insert“ taucht in Deinem Code gar nicht auf. Kannst Du die Fehlermeldung mal „uninterpretiert“ posten?
Bei insert_lagerverwaltung() ist vielleicht eine Vorwärtsdeklaration nötig, sollte aber nur ein Warning erzeugen.

Jan

Hi, also das gibt mein Compiler als Fehlermeldung raus:

line 29 ‚insert_lagerverwaltung‘ undeclared(first us this function)
(each underclared identifier is reported only once for each
function it appears in.)
At global scope

MFG

Hallo!

Hi, also das gibt mein Compiler als Fehlermeldung raus:

line 29 ‚insert_lagerverwaltung‘ undeclared(first us this
function)

Auf Deutsch: insert_lagerverwaltung ist an der Stelle (noch) unbekannt.
Tatsächlich wird eine Funktion dieses Namens auch erst weiter unten definiert, zu spät für den Compiler.

Entweder Du änderst die Reihenfolge der Funktionsdefinitionen oder Du macht eine Vorwärtsdeklaration, d.h. Du schreibst den sog. Prototyp der aufzurufenden Funktion irgendwo vor den Funktionsaufruf, also z.B. gleich unter die includes. Der Prototyp einer Funktion ist der Funktionskopf mit abschließendem Semikolon, also einfach:
void insert_lagerverwaltung(long art_nr, char art_tit[], int anz_art);
(Die Variablennamen könnten auch weggelassen werden.)

hth
Jan