Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.04.2009, 16:09

Funktions Problem

Hallo bin gerade dabei die Aufgabe über Strukturen und Arrays zu machen nur irgendwie will er einfach nicht in meine Funktion springen hat wer ein Tipp?


Move



C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <iostream>


using namespace std;



    void eins();



struct Feld

    {
        bool Besetzt;
        char Name[20];
    };

    const int Breite = 5;
    const int Hoehe = 5;

    Feld Feldinfo[Breite] [Hoehe];


int main ()
{

    
    int Auswahl;



    do
    {
        cout << "\n\n1 - Spielfeld anzeigen" << endl;
        cout << "2 - Feld Besetzen" << endl;
        cout << "3 - Felddaten Anzeigen" << endl;
        cout << "4 - Spieldfeld Loeschen" << endl;
        cout << "5 - Programm Beenden" << endl;
        cout << "\n\nAuswahl: ";

        cin >> Auswahl;

        cout << "\n\n\n";


        switch (Auswahl)
        {
            

            case 1:

                {
                    cout << "eins";

                }break;
        

            case 2:

                {

                    cout << "Zwei";

                    void eins()     ;

                }break;

            case 3:

                {
                    cout << "Drei";

                }break;

            case 4:

                {
                    cout << "Vier";

                }break;

            case 5:

                {

                cout << "ende";

                }break;
        }


    }while (Auswahl != 5);





    return 0;
}


//Besetzen



void eins()

{

    int X;
    int Y;


                    cout << "X-Position (1-5): ";
                    cin >> X;

                    cout << "Y-Position (1-5): ";
                    cin >> Y;

                    cin.ignore();

                    cout << "Name des Feldes: ";
                    cin.get (Feldinfo[X][Y].Name, 20);
                    Feldinfo[X][Y].Besetzt = true;                  

}

ph4nt0m

Frischling

Beiträge: 81

Beruf: Student

  • Private Nachricht senden

2

17.04.2009, 16:16

Mit "void eins();" deklarierst du lediglich eine Funktion, was du ja im oberen Teil des Codeausschnitts auch richtig gemacht hast. Wenn du diese Funktion dann aber aus deinem Programm heraus aufrufen willst, genügt ein einfaches "eins();", den Rückgabetyp musst du also nicht erneut mit angeben :D
;)

3

17.04.2009, 16:19

Danke das wars^^ aber der Harte Teil der Aufgabe kommt sicher noch.



Move

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

4

17.04.2009, 17:58

Also ich weiß nicht, ob dein Code ein deinem Editor auch so aussieht, aber falls das so sein sollte, würde ich mir recht bald einen anderen Stil angewöhnen :D

5

17.04.2009, 18:43

Kommentare spare ich mir bei den Übungsaufgaben und die Funktion hieß auch vorher "BesetzeFeld" nur nachdem die zuerst nicht geklappt hab ich sie einfach mal "eins" genannt um sicher zu gehen da da kein fehler herkommt.

Aber wenn es sonst noch was zum aussetzen gibt raus damit noch kann ich schnell was verändern ^^



hab noch ein Problem wie kann ich einer Char Variable in einer Struktur einen Start wert geben?

C-/C++-Quelltext

1
Spieler.Name[30] = "String 1"; 
geht nicht


Move

Chef-Koch

Treue Seele

Beiträge: 115

Wohnort: Ulm

  • Private Nachricht senden

6

17.04.2009, 18:51

schreib einfach nachdem du eine Instanz der Struktur erschaffen hast :

C-/C++-Quelltext

1
2
3
4
5
//Struktur StrName; <- erstmal Instanz der Struktur machen - bei dir also:

Struktur Spieler;  //'Struktur' mit dem Namen deiner Struktur natürlich austauschen^^


//Instanz.Variable = X  |-- in deinem Fall also:

Spieler.Name = "String1"


vorausgesetzt, dass 'Name' auch ein Char Array ist, oder eben vom typ char*. Aber davon gehe ich einfach mal aus :P

7

17.04.2009, 18:53

Wieso nimmst du nicht std::string?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
struct Feld
{
    bool Besetzt;
    std::string Name;
};

int main()
{
    Feld f = {true, "Alter Feldname"};
    f.Name = "Neuer Feldname";
}

Ansonsten musst du auf strcpy() zurückgreifen. Unter www.cplusplus.com sind die Klassen und Funktionen (darunter std::string) noch genauer beschrieben.

@ Chefkoch:
Nein, die Zuweisung ist nicht möglich, da Name bei ihm ein Array ist.

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

8

17.04.2009, 19:35

Zitat von »"Movementcat"«

Kommentare spare ich mir bei den Übungsaufgaben und die Funktion hieß auch vorher "BesetzeFeld" nur nachdem die zuerst nicht geklappt hab ich sie einfach mal "eins" genannt um sicher zu gehen da da kein fehler herkommt.

Aber wenn es sonst noch was zum aussetzen gibt raus damit noch kann ich schnell was verändern ^^

Es ging nicht ums kommentieren, oder das Benamen deiner Funktionen... viel mehr um die viiielen viiiiiielen leerzeilen in deinem code, da hast du ja fast garkeinen code mehr auf deinem bildschirm, wenn du das so machst :D
Außerdem rückst du auch irgendwie zu viel ein.. die klammern, und den nachfolgenen code auch nochmal... und teilweise stimmt das einrücken auch nicht mehr...
Bei so nem kleinen schnellgeschriebenen beispielübungscode mag es ok sein, und kaum eine rolle spielen, aber falls das dein genereller stil ist, würde ich daran was ändern ^^

9

17.04.2009, 19:58

@Nexus
Weil er grad erst mit C++ anfängt und noch nichts über die STL weiß.

10

17.04.2009, 20:43

Ja noch nix davon gehört aber kommt sicher später noch im Buch.

Movement

Werbeanzeige