String - Verarbeitung
-
Hallo zusammen,
ich habe eine Frage zur String - Verarbeitung mit c++:
Wie funktioniert das mit Strings und C++? Ich habe folgenden Quelltext, welcher falsch ist, ich weiß allerdings nicht warum

#include <cstdlib> #include <iostream> #include <string> //Deklarierung der Klasse class Auto{ //Deklarierung der Instanzvariablen //für den Preis private: float preis; //für den Namen des Autos private: String name;auch wenn ich private wegnehme oder String klein schreibe, funktioniert das nicht

Vielen Dank!
Viele Grüße
-
stringist, wie alles in der Standardbibliothek, im Namespacestdedit: Und
stringschreibt man, wie alles in der Standardbibliothek, klein.edit2: Und das findest du, wie (fast) alles in der Standardbibliothek, in einer vernünftigen Referenz, zum Beispiel dieser hier:
www.cplusplus.comedit3: Nicht direkt zu deinem Problem: Preis als float? Ob das so eine gute Idee ist? Ich habe bisher jedenfalls noch kein Auto gesehen, das 48473.38727382367 € kostet, wofür float eigentlich gedacht ist. Vielleicht solltest du eine Klasse schreiben die nur Vielfache von 1 Cent zulässt?
edit4: Und es reicht, wenn du einmal
privateschreibst, dann ist alles was bis zum nächstenpublic/protectedkommt auch private. Hast du vorher Java gemacht?
-
SeppJ schrieb:
edit3: Nicht direkt zu deinem Problem: Preis als float? Ob das so eine gute Idee ist? Ich habe bisher jedenfalls noch kein Auto gesehen, das 48473.38727382367 € kostet, wofür float eigentlich gedacht ist. Vielleicht solltest du eine Klasse schreiben die nur Vielfache von 1 Cent zulässt?
Oder einfach
unsigned.typedef unsigned int EuroCent;
-
Hallo!
Danke für die Tipps.
Ja, richtig, ich habe bisher JAVA gelernt, darum auch das public bei jeder Methode

Ist das dann schlechter Programmierstil, wenn man bei C++ bei jeder Methode die Sichtbarkeit angibt?
Wie kann ich bei C++ ein String erfassen?
Wenn ich z.B. schreibe:
string autoMarke;
cin >> autoMarke;
funktioniert das nicht. Wie läuft das bei C++?
Viele Grüße
-
In C++ würde ich das als schlechten Stil ansehen, ja.
Falls du mit "Erfassen" eigentlich "eine Zeile erfassen" meinst, dann geht das so:
getline(cin, autoMarke);getline() ist eine Hilfsfunktion aus <string>
MfG SideWinder
-
Ich sollte nochmal nachhaken: Was meinst du mit "funktioniert nicht"?
cin >> autoMarke;sollte eigentlich nicht zu dieser "Fehlermeldung" führen.
-
cin ist natürlich auch im namespace std

std::cin >> autoMarke;
-
Danke!
Wie kann ich denn ein Programm ein paar Sekunden einfrieren?
Also das sollte wie folgt sein:
cout << "Ich berechne Ihren REchnungsbetrag" << endl;
cout <<"5 gemerkt" << endl;
cout <<"+ 1" << endl;
cout <<"Moment, gleich hab ich's" << endl;
cout <<"So, Sie muessen nichts bezahlen" <<endl;zwischenden einzlnen Angaben sollten jeweils ein paar Sekunden Pause sein.
Wie funktioniert denn das?
Viele Grüße
-
#include <windows.h> int main() { Sleep(5); // Hält das Programm für 5 Sekunden an }
-
5 Millisekunden!
-
Danke, ich hab das mit den Milisekunden auch beim ausprobieren gemerkt. Bei JAva wirds auch in Millisekunden angegeben.
Könnt ihr mir hier auch noch helfen:
ich habe folgende Variable:
int faktura = 3.50;
wie schaffe ich es, dass in der Konsole 3.50 steht und nicht 3.5?
Viele Grüße
-
-
Danke, aber da erscheit dann die maximal mögliche Anzahl an NAchkommastellen?
Gibt's da was anderes?
Ist es auch möglich, die Zahl so darzustellen: 02,50?
Vielen Dank!
-
-
Manni25 schrieb:
Danke, aber da erscheit dann die maximal mögliche Anzahl an NAchkommastellen?
Häh?
www.cplusplus.com schrieb:
When floatfield is set to fixed, float values are written using fixed-point notation, which means the value is represented with exactly as many digits in the fraction part as specified by the precision field and with no exponent part.
Hervorhebung durch mich.
Manni25 schrieb:
Gibt's da was anderes?
Hätte sich somit wohl erledigt
Ist es auch möglich, die Zahl so darzustellen: 02,50?
Das kannst du dir dann mit setfill basteln. Hinten wird nötigenfalls dank fixed mit Nullen aufgefüllt (oder gerundet) und vorne wird nötigenfalls durch setfill mit Nullen gefüllt.
-
aem...
Manni25 schrieb:
int faktura = 3.50;
wie schaffe ich es, dass in der Konsole 3.50 steht und nicht 3.5?
wie schaffst du überhaupt, dass in der konsole nen komma(punkt) dargestellt wird?
int := ganzzahl -> keine dezimalstellen -> kein komma/punkt/...