Compiler-Problem

enr00

enr00

Routinier
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'
 
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?
 
Zuletzt bearbeitet:
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 ;)
 
Zuletzt bearbeitet:
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
 
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

Sicher, dass du die gleichen Includes und keine vordefinierten Compiler-Konstanten hast?
 
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 `->'
 
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);
}
 
@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 >.<"
 
Zuletzt bearbeitet:
Re:

@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

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

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

Ähnliche Themen

Unix Webserver mit HTML Seite erstellen

GCC liefert in Eclipse Kompilierfehler

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

C HTTP request

CentOS 6.3 RADIUS - Keine Verbindung möglich

Zurück
Oben