Hallo zusammen,
wie es sicher nicht schwer zu erkennen sein wird, beschäftige ich mich erst seit einer kurzen Zeit mit C++.
Als Einstieg habe ich mir das Buch C++ für Spieleprogrammierer von Herrn Kalista gekauft und finde mich bisher gut zurecht.
Da ich mit den Beispielen immer ein wenig experimentiere stoße ich hier und dort schon einmal auf Probleme.
Einige kann ich mir selbst erklären und lösen, andere wieder nicht.
So ein Problem habe ich nun vor mir, auch wenn es sicher recht banal sein wird.
folgenden Code möchte ich um eine Möglichkeit der Werteingabe durch cin erweitern (schon 100x im Buch so durchgeführt):
|
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
|
#include <iostream>
using namespace std;
void testeBereich (int Wert, int Min, int Max); // Prototyp
void testeBereich (float Wert, float Min, float Max); // Prototyp
// Hauptprogramm
//
int main ()
{
// Variablen
//
int Minimum = 0;
int Maximum = 800;
int Wert = 0;
float fMinimum = 100.0f;
float fMaximum = 1000.0f;
float fWert = 0;
testeBereich (Wert, Minimum, Maximum);
testeBereich (fWert, fMinimum, fMaximum);
return 0;
}
// testeBereich (für Integer-Werte)
//
void testeBereich (int Wert, int Min, int Max)
{
if ((Wert >= Min) && (Wert <= Max))
cout << "(int) Wert innerhalb des Bereichs" << endl;
else
cout << "(int) Wert ausserhalb des Bereichs" << endl;
}
// testeBereich (für float-Werte)
//
void testeBereich (float Wert, float Min, float Max)
{
if ((Wert >= Min) && (Wert <= Max))
cout << "(float) Wert innerhalb des Bereichs" << endl;
else
cout << "(float) Wert ausserhalb des Bereichs" << endl;
}
|
Mein Problem ist nun, dass ich nicht verstehe warum die Eingabe nur in einer Reihenfolge funktioniert:
funktioniert:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
int main ()
{
// Variablen
//
int Minimum = 0;
int Maximum = 800;
int Wert = 0;
float fMinimum = 100.0f;
float fMaximum = 1000.0f;
float fWert = 0;
cout << "Bitte einen intWert eingeben: ";
cin >> Wert;
cout << "Bitte einen fWert eingeben: ";
cin >> fWert;
testeBereich (Wert, Minimum, Maximum);
testeBereich (fWert, fMinimum, fMaximum);
return 0;
|
funktioniert nicht:
|
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
|
int main ()
{
// Variablen
//
int Minimum = 0;
int Maximum = 800;
int Wert = 0;
float fMinimum = 100.0f;
float fMaximum = 1000.0f;
float fWert = 0;
cout << "Bitte einen fWert eingeben: ";
cin >> fWert;
cout << "Bitte einen intWert eingeben: ";
cin >> Wert;
testeBereich (Wert, Minimum, Maximum);
testeBereich (fWert, fMinimum, fMaximum);
return 0;
|
Da ich mich nicht einfach damit zufrieden geben möchte das es anders herum funktioniert
würde ich mich freuen, wenn mir jemand erklären könnte, warum die Eingabe nur funktioniert wenn ich
zuerst den intWert und danach den fwert mittels Eingabe ändere.
Ich bedanke mich
EDIT:
kann gelöscht werden,
dass Problem lag in der Eingabe selbst. Anscheinend müssen komma's als Punkte geschrieben werden.