Compiler-Problem

Dieses Thema im Forum "C/C++" wurde erstellt von enr00, 23.06.2007.

  1. enr00

    enr00 Routinier

    Dabei seit:
    08.04.2007
    Beiträge:
    275
    Zustimmungen:
    0
    Ort:
    Luxemburg
    Hi, ich versuche jetzt schon ziemlich lang, aber mein Compiler spuckt immer komische Sachen aus, und ich weiss net wieso.

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define MAX 20
    
    struct steam
    {
    char account[MAX];
    char password[MAX];
    char email[MAX];
    char question[MAX];
    char answer[MAX];
    }
    
    int main()
    {
        printf("dgstrg");
        return 0;
    }
    
    Beim Kompilieren spuckt er folgendes aus:
    Code:
    17 c:\dev-c_~1\steam.c   two or more data types in declaration of `main'
    
    19 c:\dev-c_~1\steam.c    incompatible types in return
    
    17 c:\dev-c_~1\steam.c    warning: return type of `main' is not `int'
    
    
    
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hengs

    hengs Tripel-As

    Dabei seit:
    21.02.2005
    Beiträge:
    217
    Zustimmungen:
    0
    Ort:
    Salzburg
    struct gehört mit ; geschlossen.
     
  4. smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    dangling ;
     
  5. #4 enr00, 23.06.2007
    Zuletzt bearbeitet: 23.06.2007
    enr00

    enr00 Routinier

    Dabei seit:
    08.04.2007
    Beiträge:
    275
    Zustimmungen:
    0
    Ort:
    Luxemburg
    big thx

    !!Vielen Dank!!
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define MAX 30
    
    struct steam
    {
    char account[MAX];
    char password[MAX];
    char email[MAX];
    char question[MAX];
    char answer[MAX];
    };
    
    int index = 0;
    
    void eingabe(int i, struct steam *man)
    {
        printf("Account:   ");
        scanf("%s", &man[i].account);
    
        printf("Password:   ");
        scanf("%s", &man[i].password);
    
        printf("Email address:   ");
        scanf("%s", &man[i].email);
    
        printf("Secret question:   ");
        scanf("%s", &man[i].question);
    
        printf("Secret answer:   ");
        scanf("%s", &man[i].answer);
    
        index++;
    }
    
    void ausgabe(int i, struct steam *man)
    {
         int j;
    
         for(j = 0;j < i-1; j++)
         {
               printf("\n\nAccount:     %s\nPassword:     %s\nEmail address:     %s\nSecret Question:     %s\nSecret answer:     %s\n\n\n", man[i].account, man[i].password, man[i].email, man[i].question, man[i].answer);
         }
    }
    
    int main(int argc, char **argv[])
    {
        int aus = 1;
        struct steam man[MAX];
    
        while(aus != 100)
        {
                  printf("\n\nWelcome to enr00's Account Manager (eam)\n");
                  printf("-----------------------------------------------------\n");
                  printf("-----------------------------------------------------\n\n");
    
                  printf("-1-      Neuen Account eingeben\n");
                  printf("-2-      Alle Accounts ausgeben\n");
                  printf("-100-    Beenden\n");
    
                  scanf("%d", &aus);
    
                  switch(aus)
                  {
                             case 1: eingabe(index, man);
                             break;
                             case 2: ausgabe(index, man);
                             break;
                             case 100: return 0;
                             break;
                  }
         }
    
    }
    Bei der Asugabe kommen immer nur komische Zeichen, woran kann das liegen?
     
  6. #5 dietox, 23.06.2007
    Zuletzt bearbeitet: 23.06.2007
    dietox

    dietox Eroberer

    Dabei seit:
    26.05.2007
    Beiträge:
    74
    Zustimmungen:
    0
    Kann es sein, dass du statt dem Punkt-Operator den '->' Operator verwenden musst?
    Du verlangst immerhin einen Zeiger auf eine Struktur als Funktionsparameter.

    PS:
    Bei main(): Variable "aus" sollte unsigned short sein ;)

    //EDIT:
    Ich würde auf den ersten Blick sagen, dass du alle int durch unsigned short ersetzen kannst ;)
     
  7. musiKk

    musiKk Dr. Strangelove

    Dabei seit:
    30.07.2006
    Beiträge:
    264
    Zustimmungen:
    0
    Ort:
    Leipzig
    Huh? Hab ich irgendein Flag nicht beachtet? Bei mir compilierts das nicht mal...
    Code:
    test.c:16: error: ‘index’ redeclared as different kind of symbol
    
     
  8. dietox

    dietox Eroberer

    Dabei seit:
    26.05.2007
    Beiträge:
    74
    Zustimmungen:
    0
    Sicher, dass du die gleichen Includes und keine vordefinierten Compiler-Konstanten hast?
     
  9. enr00

    enr00 Routinier

    Dabei seit:
    08.04.2007
    Beiträge:
    275
    Zustimmungen:
    0
    Ort:
    Luxemburg
    Thx

    Dann kann ich nicht mal mehr kompilieren.
     
  10. musiKk

    musiKk Dr. Strangelove

    Dabei seit:
    30.07.2006
    Beiträge:
    264
    Zustimmungen:
    0
    Ort:
    Leipzig
    Uhm... Ja, Nein... Jein. Nein, keine Ahnung... :/
     
  11. dietox

    dietox Eroberer

    Dabei seit:
    26.05.2007
    Beiträge:
    74
    Zustimmungen:
    0
    Könntest du mir bitte sagen, welche Fehler/Warnungen der Compiler dann ausgibt?

    Dann schau nach, vielleicht liegt's daran ;)
     
  12. enr00

    enr00 Routinier

    Dabei seit:
    08.04.2007
    Beiträge:
    275
    Zustimmungen:
    0
    Ort:
    Luxemburg
    Re:

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define MAX 20
    
    struct steam
    {
    char account[MAX];
    char password[MAX];
    char email[MAX];
    char question[MAX];
    char answer[MAX];
    };
    
    int index = 0;
    
    void eingabe(int i, struct steam *man)
    {
        printf("Account:   ");
        scanf("%s", &man[i].account);
    
        printf("Password:   ");
        scanf("%s", &man[i].password);
    
        printf("Email address:   ");
        scanf("%s", &man[i].email);
    
        printf("Secret question:   ");
        scanf("%s", &man[i].question);
    
        printf("Secret answer:   ");
        scanf("%s", &man[i].answer);
    
        index++;
    }
    
    void ausgabe(int i, struct steam *man)
    {
         int j;
    
         for(j = 0;j < i-1; j++)
         {
               printf("\n\nAccount:     %s\nPassword:     %s\nEmail address:     %s\nSecret Question:     %s\nSecret answer:     %s\n\n\n", [COLOR="DarkOrange"][B]man[i]->account, man[i]->password, man[i]->email, man[i]->question, man[i]->answer)[/B][/COLOR];
         }
    }
    
    int main(int argc, char **argv[])
    {
        unsigned short aus = 1;
        struct steam man[MAX];
    
        while(aus != 100)
        {
                  printf("\n\nWelcome to ]=-antr4xx-=[ Steam Account Manager (asam)\n");
                  printf("-----------------------------------------------------\n");
                  printf("-----------------------------------------------------\n\n");
    
                  printf("-1-      Neuen Account eingeben\n");
                  printf("-2-      Alle Accounts ausgeben\n");
                  printf("-100-    Beenden\n");
    
                  scanf("%d", &aus);
    
                  switch(aus)
                  {
                             case 1: eingabe(index, man);
                             break;
                             case 2: ausgabe(index, man);
                             break;
                             case 100:printf("Bye Bye by ]=-antr4xx-=[\n");
                                      return 0;
                                      break;
                  }
         }
    
    }
    
    
    Bei diesem Quellcode gibt er folgendes aus:44 c:\dev-c_~1\steam.c
    invalid type argument of `->'
    44 c:\dev-c_~1\steam.c
    invalid type argument of `->'
    44 c:\dev-c_~1\steam.c
    invalid type argument of `->'
    44 c:\dev-c_~1\steam.c
    invalid type argument of `->'
    44 c:\dev-c_~1\steam.c
    invalid type argument of `->'
    44 c:\dev-c_~1\steam.c
    invalid type argument of `->'
    44 c:\dev-c_~1\steam.c
    invalid type argument of `->'
     
  13. #12 Mµ*e^13.5_?¿, 24.06.2007
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Also ich würde es so machen, vielleicht hilft dir das ja weiter:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define MAX_ENTRIES 500
    #define MAX_LENGTH 50
    
    struct steam_acc
    {
    	char account[MAX_LENGTH];
    	char password[MAX_LENGTH];
    	char email[MAX_LENGTH];
    	char question[MAX_LENGTH];
    	char answer[MAX_LENGTH];
    };
    
    void ausgabe (struct steam_acc **accs, int count);
    void eingabe (struct steam_acc *acc);
    
    int main (int argc, char **argv) {
    	int count = 0;
    	int q;
    	struct steam_acc *steam_accs[MAX_ENTRIES];
    
    	for (;;) {
    		printf("\n\nWelcome to ]=-antr4xx-=[ Steam Account Manager (asam)\n");
    		printf("-----------------------------------------------------\n");
    		printf("-----------------------------------------------------\n\n");
    		printf("-1-      Neuen Account eingeben\n");
    		printf("-2-      Alle Accounts ausgeben\n");
    		printf("-100-    Beenden\n");
    		scanf("%d", &q);
    
    		switch (q) {
    			case 1:
    				steam_accs[count] = malloc(sizeof(struct steam_acc));
    				if (steam_accs[count] == NULL) {
    					perror(argv[0]);
    					exit(1);
    				}
    				eingabe(steam_accs[count]);
    				count++;
    				break;
    			case 2:
    				ausgabe(steam_accs, count);
    				break;
    			case 100:
    				printf("Bye Bye by ]=-antr4xx-=[\n");
    				return EXIT_SUCCESS;
    		}
    	}
    }
    
    void ausgabe (struct steam_acc **accs, int count)
    {
    	int i;
    	for (i = 0; i < count; i++) {
    		printf("\n\nAccount:     %s\nPassword:     %s\nEmail address:     %s\nSecret Question:     %s\nSecret answer:     %s\n\n\n", accs[i]->account, accs[i]->password, accs[i]->email, accs[i]->question, accs[i]->answer);
    	}
    }
    
    void eingabe (struct steam_acc *acc)
    {
    	printf("Account:   ");
    	scanf("%s", acc->account);
    	
    	printf("Password:   ");
    	scanf("%s", acc->password);
    	
    	printf("Email address:   ");
    	scanf("%s", acc->email);
    	
    	printf("Secret question:   ");
    	scanf("%s", acc->question);
    	
    	printf("Secret answer:   ");
    	scanf("%s", acc->answer);
    }
     
  14. #13 dietox, 24.06.2007
    Zuletzt bearbeitet: 24.06.2007
    dietox

    dietox Eroberer

    Dabei seit:
    26.05.2007
    Beiträge:
    74
    Zustimmungen:
    0
    @enr00
    Wieso hast du nur in void ausgabe() den '->' Operator benutzt?
    Wieso nicht auch in void eingabe() ?

    Ich weiß, die Wahrscheinlichkeit, dass es daran liegt und furchtbar gering, aber man sollte alles durchgenommen haben :P

    //EDIT:
    Es ist früh morgens, deshalb habe ich solchen Unfug gepostet >.<"
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. enr00

    enr00 Routinier

    Dabei seit:
    08.04.2007
    Beiträge:
    275
    Zustimmungen:
    0
    Ort:
    Luxemburg
    Re:

    Damit funzt es leider auch nicht, habt ihr sonst noch Vorschläge?
     
  17. enr00

    enr00 Routinier

    Dabei seit:
    08.04.2007
    Beiträge:
    275
    Zustimmungen:
    0
    Ort:
    Luxemburg
    @Mµ*e^13.5_?¿

    danke, jetzt funktioniert es...
     
Thema:

Compiler-Problem