Probleme bei einfachem struct- Programm

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probleme bei einfachem struct- Programm

    Hallo,

    ich weise einem Lager mit 200 Fächern jeweils zwei daten zu einmal die artikelnummer = artnr und das eingangsdatum = eindat.
    Ich möchte am ende eigentlich einfach nur alles ausgeben aber ich bekomme einen Fehler in Zeile 44 (rot markiert)
    error C2059: Syntaxfehler: '-'
    vielen dank im vorraus für die Hilfe

    gruß ost


    Quellcode

    1. #include <stdio.h>
    2. int main()
    3. {
    4. int i;
    5. struct Fach
    6. {
    7. char artnr;
    8. int eindat;
    9. };
    10. Fach*Lager;
    11. Lager=new Fach[200+1];
    12. for(i=1;i<=40;i++)
    13. {
    14. Lager[i].artnr ='a';
    15. Lager[i].eindat = 1;
    16. }
    17. for(i=40;i<=80;i++)
    18. {
    19. Lager[i].artnr ='b';
    20. Lager[i].eindat = 1;
    21. }
    22. for(i=80;i<=120;i++)
    23. {
    24. Lager[i].artnr ='c';
    25. Lager[i].eindat = 1;
    26. }
    27. for(i=120;i<=160;i++)
    28. {
    29. Lager[i].artnr='d';
    30. Lager[i].eindat = 1;
    31. }
    32. for(i=160;i<=200;i++)
    33. {
    34. Lager[i].artnr ='e';
    35. Lager[i].eindat = 1;
    36. }
    37. for(i=1;i<=200;i++)
    38. {
    39. printf("Stellplatz Nr.%i\n",i);
    40. printf("%c%d",Lager[i].artnr,.eindat); // !!!
    41. }
    42. return 0;
    43. }
    Alles anzeigen
  • bcc-fan schrieb:

    Du nutzt einen C-Header und einige Sprachelemente von C++.
    Welche Programmiersprache soll es denn werden?
    Oder ist da noch eine andere im Pool?

    MfG bcc-fan

    bcc-fan schrieb:

    Du nutzt einen C-Header und einige Sprachelemente von C++.
    Welche Programmiersprache soll es denn werden?
    Oder ist da noch eine andere im Pool?

    MfG bcc-fan

    X-Eon schrieb:

    Ich würds zuerst einmal mit printf("%c%d", Lager[i].artnr, Lager[i].eindat); versuchen.

    Gruß,
    X


    Vielen dank das hat schonmal geholfen
    so hatte ich das noch nicht gesehen.

    Was sind den bei mir c++ elemente

    ich habe nen c++ compile´r wegen meiner 64 bit version glaub ich

    es ist nun ein weiteres prob aufgetreten es wird erst ab Lager52 ausgegeben.

    Alles was davor liegt nicht warum ?
  • Hatte mit Code::Blocks auf die Schnelle den Quelltext formatiert
    und da ich den Quelltext schon mal drauf hatte und ein C-header oben drauf stand versucht in C zu compilieren und da die Fehlermeldungen auf C++ hin deuteten, anschliessend als C++ Source -> der gcc mit meiner Ansteuerung wirft jeweils mehrere aber unterschiedliche Fehler aus.

    Wenn du uns schreibst, was du vorhast mit welchem Compiler - können wir dir vielleicht schreiben, was zu tun ist.

    Das dein Compiler nur C++ kann haltet ich für unwahrscheinlich, aber nix ist unmöglich ;)

    Speicher den Quelltext unabhängig davon was dir deine IDE vorgibt mal mit der Endung .c und nicht mit .cpp!
    Die meisten aktuellen Compiler orientieren sich an der Endung, wenn der nicht gesondert anders angesteuert wird.

    In C müsstest du dich statt mit

    Quellcode

    1. new
    mit

    Quellcode

    1. malloc
    beschäftigen.

    Solltest du in C++ etwas mehr Kenntnisse haben, wären für das Projekt die sogenannten Container eine Überlegung wert.

    Dann noch ein Problem in deinem Quelltext - merkst du aber erst beim Testen nach dem compilieren

    Quellcode

    1. printf("%c%d", Lager[i].artnr, Lager[i].eindat);

    das %c schätze ich ist nicht das was du willst.

    MfG bcc-fan
  • ok

    mein compiler ist visual studio 2008.
    habe das mal gemacht mit .c gespeichert und bekomme jede menge fehlermeldungen . beziehen sich glaub ich alle auf die felder aber is ja klar wenn new keine c formulierung ist.

    in der vorlesung sagt man uns wir programmieren in c und bringt uns diese formulierungen bei.

    Das will ich machen "ich weise einem Lager mit 200 Fächern jeweils zwei daten zu einmal die artikelnummer = artnr und das eingangsdatum = eindat."

    da meine atikel nr nur a b c d e sind reicht die formatierung %c glaub ich zumindest ;)