Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Anfänger braucht eure Hilfe!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
04.10.2004, 16:53 Uhr
~Dillbert1
Gast


Hier mein Problem: Ich bin Anfänger und wollte mich durch ein Projekt einfach mal in die Sprache C einführen. Das Projekt ist eine Consolen Anwendung und soll das Spiel Monopoly darstellen
Um euch jetzt nicht den ganzen Quellcode zu posten, zeige ich euch erst einmal was der Dev-c++ compiler & der visual c++ compiler sagt:
Dev-c++:
Dtestphp\C++\tetsts\main.c In function `felder1':
228 Dtestphp\C++\tetsts\main.c parse error at end of input
Dtestphp\C++\tetsts\Makefile.win [Build Error] [main.o] Error 1

Visual C++:
Dtestphp\C++\mono\mono\main.cpp(156) : error C2601: 'main' : Lokale Funktionsdefinitionen sind unzulaessig
Dtestphp\C++\mono\mono\main.cpp(227) : fatal error C1004: Unerwartetes Dateiende gefunden

Aus dem Visual C++ error report wird man schon schlauer, aber warum sagt er das die main Funktion eine Lokale Funktionsdefinition ist? in der main Funktion werden auch keine weiteren Funktionen definiert...
Wenn das alles zu unverständlich ist, werde ich den Quellcode mal posten, der aber sehr lang ist.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.10.2004, 17:05 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


zeig mal den code...
vermutlich hast du ne klammer geöffent aber nicht wieder geschlossen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.10.2004, 20:15 Uhr
~Dillbert1
Gast


Nein eben nicht... hab die Klammer zich mal gezählt und es gehen genau soviele auf wie zu.

C++:
int main()
{
   system("Color 0F");
   system ("cls");
  
   beenden='n';
   /*cash1=15000;
   cash2=15000;
   cash3=15000;
   cash4=15000;*/

  
           while (beenden=='n')
           {
            banner ();                     // Banner Implementierung
          
            label1:    printf("Wieviel Spieler nehmen an dem Spiel teil: "); // Abfrage
            textcolor(BLUE + INTENSITY);printf("2,");                     // wieviel                
            textcolor(YELLOW);printf("3,");                               // Spieler      
            textcolor(GREEN);printf("4");                                 // teilnehmen!
            textcolor(WHITE);printf("?  ");
            scanf("%i",&player);
            
                switch (player)
                {
                 case 1: printf("Falsche angabe, bitte wiederholen\n");    
                         getch();
                         goto label1;
                 break;
                 case 2:    do
                            {
                            textcolor(RED); printf("Spieler1: \n");
                            wurf1();
                            textcolor(WHITE);
                            felder1();
                            end1();
                            
                            
                            textcolor(BLUE + INTENSITY); printf("\n\nSpieler2: \n");
                            wurf2();
                            textcolor(WHITE);
                            end2();  
                            } while (cash1==0||cash2==0);                                    // Aufruf des 2 Spielermodus
                 break;
                 case 3: spieler3();                                       // Aufruf des 3 Spielermodus
                 break;
                 case 4: spieler4();                                       // Aufruf des 4 Spielermodus
                 break;
                 default: printf("Falsche angabe, bitte wiederholen\n");   // Wenn man blöd ist drückt man >4 ^^
                          getch();
                          goto label1;                                     // Springt zurück zur Abfrage              
                 break;
                }
            textcolor (RED);
            label2: printf ("Spiel beenden? (j/n): ");                             // Spiel beenden
            beenden=getche();
            switch (beenden)
            {
            case 'j': getch();exit(0);
            break;
            case 'J': getch();exit(0);
            break;
            case 'n': getch();
            break;
            case 'N': getch();
            break;
            default: system("cls");banner();textcolor(RED);printf("\n j/n eingeben\n"); goto label2;
            break;
            }            
            printf ("\n");
            system("cls");
          }
}



Hab jetzt ma die funktions definitionen und die variablen definitionen weggelassen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.10.2004, 20:24 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


davon abgesehen das dass ein wenig kompliziert und unschön implementiert ist, ist hier nicht dein klammerfehler...
ich würde mal vermuten du hast üebr main ne funktion definiert und da nicht ne klammer geschlossen und deshalb denkt er du versuchst main innerhalb dieser funkion zu definieren...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.10.2004, 20:28 Uhr
(un)wissender
Niveauwart


getche(); gibt es vermutlich nicht, darum die implizite Deklaration.
Außerdem, welchen Typ hat beenden, vielleicht char?
banner(); gibt es das?
--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 04.10.2004 um 20:29 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.10.2004, 21:24 Uhr
~Dillbert1
Gast


Das es unschön und kompliziert gemacht ist hab ich mir schon fast gedacht aber bin wie gesagt noch nicht lange dabei
beenden ist ne char var. und banner(); hab ich deklariert...
Wie gesagt hab die Klammern schon paar mal gezählt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
04.10.2004, 21:26 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


schreib mal alles vor int main(... hier rein, also alles was oben drüber steht, egal wieviel
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
04.10.2004, 21:26 Uhr
~Dillbert1
Gast


Achja und getche gibt es.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.10.2004, 21:44 Uhr
~Dillbert1
Gast



C++:
#include <conio.h>
#include <stdio.h>
#include <dos.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>


#define BLUE 0x0001    // Farb Definierung
#define YELLOW 0x000e
#define RED 0x0004
#define INTENSITY 0x0008
#define WHITE 0x000F
#define GREEN 0x0002
#define LILA 0x0005

int w1, w2, player, player1, player2, player3, player4, player11, player22, player33, player44;
float cash1, cash2, cash3, cash4;
char beenden;

void textcolor(WORD color) // Textfarbe
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
}

void banner (void)       // Monopoly Schrift
{
   textcolor(YELLOW);
   printf ("\n\t\t\t|\\/| /\\ |\\ | /\\ |) /\\ |  \\ / \n"
           "\t\t\t|  | \\/ | \\| \\/ |  \\/ |_  |  \n"
           "\t\t\t============================\n\n\n");
   textcolor(WHITE);

}
void zufall (void)
{  textcolor(WHITE);
   srand(time(0));                    // Zufallsgenerator
   w1=1+(rand()%6);  
   printf ("Wuerfel 1: ");
   getch();
   printf("%i", w1);
   srand(time(0));
   w2=1+(rand()%6);
   printf ("\nWuerfel 2: ");
   getch();
   printf("%i", w2);  
}
void wurf1 (void)                     // Funktion zum Würfeln des 1. Spielers
{
   zufall();
   player1=w1+w2;

    while (w1==6&&w2==6&&player1<=24)  // Falls 2x6 gewürfelt wird
    {
        printf("\n\nSechser Pasch! Sie duerfen nochmal Wuerfeln!\n");
        zufall();
        player1=w1+w2+player1;
    }                                  // Hier gehts weiter wenn kein 2x6er gewürfelt wird
}

void wurf2 (void)                      // Funktion zum Würfeln des 2. Spielers
{
   textcolor(WHITE);
   zufall();
   player2=w1+w2;

    while (w1==6&&w2==6&&player2<=24)   //Falls 2x6 gewürfelt wird
    {
        printf("\n\nSechser Pasch! Sie duerfen nochmal Wuerfeln!\n");
        zufall();
        player2=w1+w2+player2;
    }                                   //Hier gehts weiter wenn kein 2x6er gewürfelt wird

}

void wurf3 (void)                       // Funktion zum Würfeln des 3. Spielers
{
   textcolor(WHITE);
   zufall();
   player3=w1+w2;

    while (w1==6&&w2==6&&player3<=24)   //Falls 2x6 gewürfelt wird
    {
        printf("\n\nSechser Pasch! Sie duerfen nochmal Wuerfeln!\n");
        zufall();
        player3=w1+w2+player3;
    }                                   //Hier gehts weiter wenn kein 2x6er gewürfelt wird

}

void wurf4 (void)                       // Funktion zum Würfeln des 4. Spielers
{
   textcolor(WHITE);
   zufall();
   player4=w1+w2;

    while (w1==6&&w2==6&&player4<=24)   //Falls 2x6 gewürfelt wird
    {
        printf("\n\nSechser Pasch! Sie duerfen nochmal Wuerfeln!\n");
        zufall();
        player4=w1+w2+player4;
    }                                    //Hier gehts weiter wenn kein 2x6er gewürfelt wird

}

void end1 (void)                        // Ende des Spielzuges vom 1. Spieler
{
   printf ("\nSpieler1 darf insgesamt %i Felder vorruecken\n\n",player1);    
}

void end2 (void)                        // Ende des Spielzuges vom 2. Spieler
{
   printf ("\n\n\nSpieler2 darf insegesamt %i Felder vorruecken\n\n",player2);
}

void end3 (void)                        // Ende des Spielzuges vom 3. Spieler
{
   printf ("Spieler3 darf insgesamt %i Felder vorruecken\n\n",player3);
}

void end4 (void)                        // Ende des Spielzuges vom 4. Spieler
{
   printf ("Spieler4 darf insgesamt %i Felder vorruecken\n\n",player4);
}

void spieler3 (void)                   // Main funktion im 3 Spielermodus
{
   textcolor(RED); printf("Spieler1: \n");
   wurf1();
   textcolor(BLUE + INTENSITY); printf("\n\nSpieler2: \n");
   wurf2();
   textcolor(YELLOW); printf("\n\nSpieler3: \n");
   wurf3();
   textcolor(WHITE);
   end3();
  
}

void spieler4 (void)                   // Main funktion im 4 Spielermodus
{  
   textcolor(RED); printf("Spieler1: \n");
   wurf1();
   textcolor(BLUE + INTENSITY); printf("\n\nSpieler2: \n");
   wurf2();
   textcolor(YELLOW); printf("\n\nSpieler3: \n");
   wurf3();
   textcolor(GREEN); printf("\n\nSpieler4: \n");
   wurf4();
   textcolor(WHITE);
   end4();
}  

#include <D:\testphp\C++\tetsts\felder.c>



in der Datei felder.c ist nur noch einmal eine extra funktion deklariert, die aber 100% geschlossen wird
[cpp] void felder1 (void)
{
bla usw..
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
04.10.2004, 22:02 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also c datei includieren ist schon mal unterste schublade das macht man nicht...
der fehler scheint echt dort zu liegen... schmeiss mal den include raus und kopier deine felder1 funktion da rein...
an sonsten ist der quellcode syntaktisch ok
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: