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

little_Progger

Treue Seele

  • »little_Progger« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

1

26.02.2010, 15:47

Array abfrage wiederholt sich unendlich -.-'

Sorry das ich jetzt schon wieder ein Thema/Problem hab..
aber das andere wurd mir zu voll um ganz oben einfach das problem auszutauschen.

nun ist mein problem folgendes:

Ich bin bei Listing 5.4 wo es um die eingabe eines namens in ein Array geht.

ich habe dies gleich in mein kleines programm eingefügt und es komtm auch keine fehlermeldung.

aber wenn ich nun das programm laufen lasse spielt er die gesamte funktion ohne die eingabe abzufragen unendlich oft ab. -.-'

hier mal der code aus der Array_Test.cpp

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
// Kapitel 5

// Arrays

// array_test.cpp


#include <iostream>
#include "array_test.h"

using namespace std;

int Array_Menue()
{
    int ArrayMenue_Auswahl;

    do
    {
        cout << "Array Test Menue\n";
        cout << "----------------\n";
        cout << "1: Aufrufen von Arrays\n";
        cout << "2: Namen in Array packen\n";
        cout << "10: Quit\n";
    
        cout << "Deine Wahl? : ";
        cin >> ArrayMenue_Auswahl;
    
        if(ArrayMenue_Auswahl == 1)
            Normal_Array();
        else if (ArrayMenue_Auswahl == 2)
            Fill_Array();
        else 
            cout << "Falsche Eingabe!\n";

    }while(ArrayMenue_Auswahl != 10);

    return 0;
}

void Normal_Array()
{
    int Numbers[] = {10, 20, 30, 40, 50, 
                60, 70, 80, 90, 100};
    int Array[5];
    int Eingabe;

    Array[0] = 100;
    Array[1] = 200;
    Array[2] = 300;
    Array[3] = 400;
    Array[4] = 1000;

    cout << "Tippen sie eine Zahl von 1 - 5 ein ";
    cin >> Eingabe;

    Eingabe --; // berichtigt die Eingabe


    cout << "Gewaehlter Inhalt: " << Array[Eingabe] << endl;

    cout << "Nun eine Zahl von 1 - 10 ";
    cin >> Eingabe;

    Eingabe --; 
    
    cout << "Gewählter Inhalt: " << Numbers[Eingabe] << endl;

}

void Fill_Array()
{
    char Name[50];

    cout << "Bitte geben sie einen Namen ein: ";
    cin.get (Name, 49);

    cout << "Ihr Name lautet: ";
    cout << Name  << endl;
}


Ich hoffe ihr könnt mir auch dieses mal noch so gut helfen wie bei meinen letzten problemen :)

Gruß

2

26.02.2010, 16:04

Das beendet doch, wenn du 10 eingiebst richtig. Da sehe ich keinen Fehler, aber musst du nicht nach cin.get(), cin.ignore() verwenden?

little_Progger

Treue Seele

  • »little_Progger« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

3

26.02.2010, 16:10

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
// C++ für Spieleprogrammierer

// Listing 5.4

// Eingabe von Strings

//

#include <iostream>

using namespace std;

// Hauptprogramm

//

int main ()
{
    // Variablen

    //

    char Name[50];

    // Abfrage des Namens

    cout << "Bitte Namen eingeben: ";
    cin.get (Name, 49);

    // Ausgabe des Namens

    cout << "Der Eingabestring lautet: ";
    cout << Name << endl;

    return 0;
}


das is der kopierte code aus dem buch und da wird auch kein cin.ignore() verwendet obwohl ich eig. auch dachte das es das sein könnte aber es muss ja anscheinend anders auch gehen?!

hmm..

und ich hab grad mit cin.ignore();
versucht aber es geht auch so nich..

4

26.02.2010, 16:15

Wenn du cin.ignore() vor cin.get() verwendet funktioniert es.

little_Progger

Treue Seele

  • »little_Progger« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

5

26.02.2010, 16:17

jau hast recht aber wieso funzt es im buch und bei mir nich?! ?-|

6

26.02.2010, 16:21

Im Buch ist das Programm direkt danach zuende und benutzt nicht öfter cin.get() gemixt mit cin >>. cin.get() funktioniert ohne cin.ignore() einfach nicht richtig.

little_Progger

Treue Seele

  • »little_Progger« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

7

26.02.2010, 16:23

das cin >> muss nichmal in der funktion stehen damit es nicht funzt?

8

26.02.2010, 17:15

Ja es reicht, wenn es ein cin ohne cin.ignore() davor aufgerufen worden ist.

Werbeanzeige