Compiler-Problem

Diskutiere Compiler-Problem im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hi, ich versuche jetzt schon ziemlich lang, aber mein Compiler spuckt immer komische Sachen aus, und ich weiss net wieso. #include <stdio.h>...

  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

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    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. 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?
     
  16. 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

  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden