struct an Funktion



  • huhu

    ich ha da wieder mal eon Problem und zwar will
    ich DAten, die ich zuvor in einer Struktur eingelesen habe jetzt in einer anderen wieder ausgeben

    void Tankbeleg(void)
    {
         struct Daten{
                char Abteilung;
                char Mitarbeiter[30];
                char Datum[8];
                float Menge;
                float Preis;
                }Beleg[10];
    
          fflush(stdin);      
          printf("\n\nBitte geben sie alle erforderlichen Daten ein\n\n");
          printf("Abteiling     : "); 
          scanf("%c",&(Beleg.Abteilung));
          printf("Mitarbeiter    : ");  
          scanf("%s",&(Beleg.Mitarbeiter));
          printf("Datum : "); 
          scanf("%s",&(Beleg.Datum));
          printf("Menge in l     : ");  
          scanf("%f",&(Beleg.Menge));
          printf("Preis in Euro  : "); 
          scanf("%f",&(Beleg.Preis));
          printf("\n\n\n\n\n");
    
    }
    
    void Auswertung(struct Daten *struct_ptr)
    {
          printf("\n\nAuswertung"); 
          printf("::::: %c",(*struct_ptr).Abteilung);   
    }
    


  • Du hast die struct Daten local zur function Tankbeleg() declariert also ist sie auch nur dort sichtbar.
    Kurt



  • lol verdammt stimmt...
    thx

    aber es trotzdem müsste es doch auch mit Zeigern gehem bloß wie genau?

    mfg



  • Du musst die Struktur in main() definieren und dann an Funktionen, die mit den Inhalten dieser Struktur arbeiten sollen, einen Zeiger auf diese Struktur übergeben!

    Vereinfacht in etwa so:

    void belegen(struct foo *);
    void ausgeben(struct foo *);
    
    int main(void)
    {
     struct foo Struktur;
    
     belegen(&Struktur);
     ausgeben(&Stuktur);
    
    return 0;
    }
    


  • Achja, und die Definition, was die Struktur darstellen soll, gehört vor die Funktionsprototypen.


Anmelden zum Antworten