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

31

30.11.2007, 16:07

wow... hier blick ich gar nicht mehr durch...
was soll denn das std:: immer ?

thx werds gleich mal probieren...^^

lg

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

32

30.11.2007, 17:44

Zitat von »"raXor"«

wow... hier blick ich gar nicht mehr durch...
was soll denn das std:: immer ?

ganz einfach... du schreibst

C-/C++-Quelltext

1
using namespace std;
und legst damit fest, dass der Compiler so tun soll, als wäre alles was eigentlich zu std gehört Teil des globalen Namensraumes. Ich schreibe lieber zu jedem Element dazu, zu welchen Namensraum es gehört.

Du darfst also für dein Verständnis das std:: einfach überall wo es auftritt wegdenken ;)

33

30.11.2007, 20:29

achso, gut...

aber leider kommen beim compilen ewig viele fehlermeldungen...
ich schreib sie dir naher ins forum, kann gerade nur nicht weil ich am laptop sitz^^...lg

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

34

01.12.2007, 01:12

um dem mal vorzubeugen: ich hab folgende Änderungen an meinem Quelltext gemacht:

#include <limits> hinzugefügt

C-/C++-Quelltext

1
2
#include <iostream>
#include <limits> 


std::cout << "\n Zahl1 = "; hinzugefügt

C-/C++-Quelltext

1
2
3
4
      else if (userchoice2 == 2) // Subtrahieren

      {
        std::cout << "\nSubtrahieren:";
        std::cout << "\n Zahl1 = ";


das ';' beachten

C-/C++-Quelltext

1
2
3
4
    else if (userchoice == 3) // Credits

    {
      std::cout << "\n--Text hier--\n";
    }

35

02.12.2007, 18:33

oh thx es geht....

geht das aber auch nicht mit meiner Methode (so im groben)
weil ich blick echt nicht viel...
lg

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

36

02.12.2007, 20:41

Das ist fast nach deiner Methode, nur eben um die Sachen erweitert, nach denen du gefragt hast.

Und dass es dir nichts bringt, wenn dir irgendwer nen fertigen Code vorsetzt oder was an deinem Code rumändert hab ich dir schon gesagt - du wolltest es nicht glauben, jetzt darfst du deine Meinung dazu gern revidieren ;)

Also, setz dich nochmal an deinen Code ran (oder fang evtl. sogar von vorn an) und baue daran selbst rum bis irgendwas gescheites bei rauskommt.

37

03.12.2007, 14:02

kay mach ich.. also vielen vielen dank...

lg

38

03.12.2007, 18:08

RELEASE
*freu*^^

Hier der Quellcode...
hab das std:: weggemacht weil ich ausprobieren wollte ob das geht...

ist doch viel einfacher so, oder gibt es hier irgendwelche nachteile:?

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
127
128
129
130
131
132
133
#include "stdafx.h"
#include <iostream> 
#include <limits>

using namespace std;

int main() 
{ 
  float calc1 = 0.0f, calc2 = 0.0f;                 // Berechnungsvariablen 

  int userchoice = 0, userchoice2 = 0, exit = 0;    // Menuvariable //Schleifenvariable

  
  cout << "Willkommen beim RPRAXOR\nDies ist ein Programm in dem Sie Berechnungen durchfuehren koennen!\n";
  while (exit != 1) 
  { 
    cout << "______________________________\n\nBitte Waehlen Sie aus!\n\n (1) Rechnen\n (2) Hilfe\n (3) Credits\n (4) Beenden\n"; 
    cin >> userchoice; // Nutzereingabe 

    while (! cin ) // Nutzereingabe wiederholen, wenn sie nicht korrekt war 

    { 
      cin.clear(); 
      cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
      cout << "\nNur 1, 2, 3 und 4 sind gueltige Eingaben!\n"; 
      cin >> userchoice; 
    } 

    if (userchoice == 1) // Rechnen 

    { 
      cout << "\n (1) Addieren\n (2) Subtrahieren\n (3) Multiplizieren\n (4) Dividieren\n"; 
      cin >> userchoice2; 
      while (! cin ) // Nutzereingabe wiederholen, wenn sie nicht korrekt war 

      { 
        cin.clear(); 
        cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
        cout << "\nNur 1 und 2 sind gueltige Eingaben!\n"; 
        cin >> userchoice2; 
      } 
      if (userchoice2 == 1) // Addieren 

      { 
        cout << "\nAddieren:"; 
        cout << "\nErste Zahl eingeben: ";
        cin >> calc1;
        cout << "Zweite Zahl eingeben: ";
        cin >> calc2;
        while (! cin) 
        { 
          cin.clear(); 
          cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
          cout << "\nNur Dezimalzahlen (Trennzeichen '.') sind gueltige Eingaben!\n"; 
          cout << "\nErste Zahl eingeben: ";
        cin >> calc1;
        cout << "Zweite Zahl eingeben: ";
        cin >> calc2;
        } 
        cout << "\nErgebnis: " << (calc1 - calc2) << "\n" << endl; 
      } 
      else if (userchoice2 == 2) // Subtrahieren 

      { 
        cout << "\nSubtrahieren:"; 
        cout << "\nErste Zahl eingeben: ";
        cin >> calc1;
        cout << "Zweite Zahl eingeben: ";
        cin >> calc2;
        while (! cin) 
        { 
          cin.clear(); 
          cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
          cout << "\nNur Dezimalzahlen (Trennzeichen '.') sind gueltige Eingaben!\n"; 
          cout << "\nErste Zahl eingeben: ";
          cin >> calc1;
          cout << "Zweite Zahl eingeben: ";
          cin >> calc2;
        } 
        cout << "\nErgebnis: " << (calc1 - calc2) << "\n" << endl; 
      } 
      else if (userchoice2 == 3) //Multiplizieren

      {
          cout << "\nMultiplizieren:";
          cout << "\nErste Zahl eingeben: ";
          cin >> calc1;
          cout << "Zweite Zahl eingeben: ";
          cin >> calc2;
          while (! cin)
          {
              cin.clear();
              cin.ignore(numeric_limits<streamsize>::max(), '\n');
              cout << "\nNur Dezimalzahlen (Trennzeichen '.') sind gueltige Eingaben!\n";
              cout << "\nErste Zahl eingeben: ";
              cin >> calc1;
              cout << "\nZweite Zahl eingeben: ";
              cin >> calc2;
          }
          cout << "\nErgebnis: " << (calc1 * calc2) << "\n" << endl;
        }
        else if (userchoice2 == 4) //Dividieren

        {
          cout << "\nDividieren:";
          cout << "\nErste Zahl eingeben: ";
          cin >> calc1;
          cout << "Zweite Zahl eingeben: ";
          cin >> calc2;
          while (! cin)
          {
              cin.clear();
              cin.ignore(numeric_limits<streamsize>::max(), '\n');
              cout << "\nNur Dezimalzahlen (Trennzeichen '.') sind gueltige Eingaben!\n";
              cout << "\nErste Zahl eingeben: ";
              cin >> calc1;
              cout << "\nZweite Zahl eingeben: ";
              cin >> calc2;
          }
          cout << "\nErgebnis: " << (calc1 / calc2) << "\n" << endl;
      }
      else // Ungueltige Eingabe! 

      { 
        cout << "Ungueltige Eingabe!\n"; 
      } 
    } 
    else if (userchoice == 2) // Hilfe 

    { 
      cout << "\nHILFE: \n (1) Rechenvorgang starten\n (2) Hilfe anzeigen\n (3) Informationen anzeigen \n (4) Programm beenden\n\n   Bitte bei den Rechnungen die Dezimalzahlen MIT einem Punkt\n   und KEINEM Komma trennen!!\n"; // klar ;) 

    } 
    else if (userchoice == 3) // Credits 

    { 
      cout << "\nINFO: \n(c) by Uwe Collmer\nhttp://uwe-collmer.de\nhttp://game-community.org\n\nThanks for downloading and using\nVersion 1.0\nMade in about 5 hours\n(Il)legal copys are allowed\n\nPlease send bugreports or questions to uwe@collmer.net\n"; 
    } 
    else if (userchoice == 4) // Beenden

    {
        cout << "\nWirklich beenden?\n (1) Ja\n (2) Nein\n"; 
        cin >> exit;
    }
    
  } 
  return 0; 
}

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

39

03.12.2007, 19:49

Ich sag mal so: solange deine Projekte übersichtlich klein sind ist das eigentlich kein Problem mit using namespace std;
Wenn du aber mal größere Sachen machst besteht halt die Gefahr, dass es zu uneindeutigkeiten in den Funktions / Klassennamen kommt, da innerhalb von namespace std schon einiges an Namen belegt ist. Wenn du schon auf std:: verzichten willst empfehle ich, nicht gleich den ganzen Namespace zu öffnen sondern stattdessen jedes genutzte Element einzeln freizugeben:

C-/C++-Quelltext

1
2
3
4
5
6
// includes


using std::cout;
using std::cin;

// weiterer Code - vor std::cin und std::cout kann man jetzt das std:: weglassen, alle anderen Teile vom namespace std bleiben unberührt.


Kleiner Kritikpunkt an deinem Programm: Fast überall wird sichergestellt, dass der Nutzer nur korrekte Eingaben liefert. Nur leider in einem Teil nicht:

C-/C++-Quelltext

1
2
3
4
5
    else if (userchoice == 4) // Beenden

    {
        cout << "\nWirklich beenden?\n (1) Ja\n (2) Nein\n";
        cin >> exit;
    } 

40

03.12.2007, 20:13

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
else if (userchoice == 4) // Beenden

    {
        cout << "\nWirklich beenden?\n (1) Ja\n (2) Nein\n"; 
        cin >> exit;
         while (! cin ) // Nutzereingabe wiederholen, wenn sie nicht korrekt war 

      { 
        cin.clear(); 
        cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
        cout << "\nNur 1 und 2 sind gueltige Eingaben!\n"; 
        cin >> exit; 
      } 
    }


Aber jetzt wird , wenn ich 3 oder 4 eingebe der anfangsbildschirm wiederholt... ?

Werbeanzeige