Strukturen in C

Disap

Mitglied
Moin zusammen.

Ich lese zur Zeit ein Buch über C (und zwar C - mit einfachen Beispielen programmieren von einem gewissen Herrn Jürgen Wolf), jedenfallswird hier ein Programm vorgestellt, dass von der Idee ganz einfach ist. Es geht darum, dass man manuell in der Konsole einen Artikelnamen und die Anzahl der Artikel angibt, die dann automatisch (mit Hilfe eines Counters) eine Artikelnummer bekommen. Dann kann man sich seine Eingaben auch noch ausgeben lassen. Das funktioniert bei mir aber nicht so toll, hier der Code:
Code:
#include <stdio.h>
#include <stdlib.h>

struct lagerverwaltung
{
       
       long artikelnummer;
       char artikelbezeichnung[100];
       int anz_artikel;

};

int count = 0;                                                                  
//Fuer die Artikelnummer spaeter 

int main()
{
    
    struct lagerverwaltung artikel[100];                                        
//Maximal 100 Artikel aufnehmen
    int abfrage, 
        nummer;
    
    do
    {
        printf("\nLagerverwaltung\n\n");                                        
        printf("<1> Neuen Artikel eingeben\n");
        printf("<2> Bestimmten Artikel ausgeben\n");
        printf("<3> Ende\n\n");
        printf("Ihre Wahl : < >\b\b");
        scanf("%d",&abfrage);                                                   
        fflush(stdin);
        
        switch(abfrage)
        {
                     case 1:   artikel[count].artikelnummer=count;
                               printf("Artikelbezeichnung : ");
                               fgets(artikel[count].artikelbezeichnung, 100, stdin);
//Lese die Art.bezeichnung ein
                               printf("Anzahl der Artikel : ");
                               scanf("%d",&artikel[count].anz_artikel);             
//Lese die Anzahl der Art. ein
                               fflush(stdin);
                               //getchar();
                               printf("\nDaten wurden aufgenommen\n");
                               printf("Art.nr. lautet %d\n\n",count);
                               count++;                                                   
//Artikelnummer erhoehen
                               break;  
                     case 2:   printf("Artikelnummer : ");
                               scanf("%d",&nummer);
                               if( (nummer > count) || (nummer < 0) )                                                      
                                  printf("Kein Eintrag dazu\n");
                               else
                               {
                                  printf("\n\nArtikelnummer: %ld\n", &artikel[nummer].artikelnummer);
                                  printf("Artikel : %s", &artikel[nummer].artikelbezeichnung);
                                  printf("Anzahl : %d\n", &artikel[nummer].anz_artikel);
                               }
                               break;
                     default:  break;
                     
        }
    }while(abfrage !=3);
        
                       
    
//    system("pause");
    return 0;
    
}

Wenn ich in der Konsole (cmd unter Windows) nun irgendeinen Artikelnamen eingebe und eine Anzahl (z.B. 10), bekomme ich aber trotzdem immer diese schwachsinnige Ausgabe:

Artikelnummer: 2282924
Artikel : Test
Anzahl : 2283028

Ich kann mir hier nicht erklären, woran das liegt. Kann mir da jemand helfen?

Um es noch einmal zu betonen, ich bin absoluter Programmieranfänger.

Besten Dank,
Disap
 
Code:
                                  printf("\n\nArtikelnummer: %ld\n", &artikel  nummer].artikelnummer);
                                  printf("Anzahl : %d\n", &artikel[nummer].anz_artikel);

Du gibst hier die Adresse der variablen aus, nicht den Inhalt, muß heissen:

Code:
                                  printf("\n\nArtikelnummer: %ld\n", artikel  nummer].artikelnummer);
                                  printf("Anzahl : %d\n", artikel[nummer].anz_artikel);
 
Zurück