C++ Beispielprogramm Taschenrechner

OP #3195426
Hallo Leute,

Ich müsste in C++ ein Beipielprogramm schreiben, habe auch schon fast 
alles fertig. Da ich mich aber nur in C# und C "auskenne" weiß ich in 
c++ nicht weiter. Beim "printf" sollte das Ergebniss der Rechnung 
ausgegeben werden.
Jedoch weiß ich nicht wie man die Ausgabe des Ergebnisses macht, dass 
der Operator (+, -, *, /) auch korrekt dabei steht.
Kennt sich hier jemand aus?


Danke :)
Angehängte Dateien:
Gast #3195443
Nun ja, dein C++ unterscheidet sich auf den ersten Blick nicht 
sonderlich von normalem C. Und damit kennst du dich ja aus ;)

Printf  funktioniert in  C++ genauso wie in C. Was also ist jetzt deine 
Frage?

Und was sagt dein Compiler zu deinem Programm? Richtig mögen wird er das 
wohl nicht, nicht nur wegen der komischen Endung .txt

Oliver
Moderator #3195467
Du benutzt für die Ein- und Ausgabe ja größtenteils die Stream-IO von
C++, also die Operatoren >> und <<. Das ist in Ordnung, aber die Streams
heißten nicht scanf und printf, sondern cin und cout. Ersetze also
einfach diese Namen.

Die zig Fehler, die der Compiler dann noch ausgibt, würden fast alle
auch von einem C-Compiler angeprangert. Da du ja C kannst, sollte es dir
deswegen nicht schwer fallen, diese Fehler zu beheben.

Wenn das tut, würde ich noch etwas an der "Usability" optimieren:

- Wäre es nicht schöner,

    444 - 333

  statt

    444 333 2

  eingeben zu können, um eine Subtraktion durchzuführen?

- Und was passiert bei einer Division durch Null?

- Was passiert, wenn man einen ungültigen Operator eingibt?

- Wenn man mehrere Rechnungen durchführen möchte, muss man jedesmal das
  Programm neu starten :-/

- ...
#3196508
"printf" und "scanf" kannst du so nicht aufrufen. Lies in deinem C Buch 
nach. Wenn das Programm im C Syntax läuft, fügst Du die Stream 
Funktionalität von C++ hinzu. Danach erstelle eine Klasse 
"Taschenrechner", die dann die einzelnen Methoden - addition, 
subtraktion, multiplikation und division - beinhaltet, die jetzt einzeln 
existieren. Anschliessend überlädst Du die Operatoren +, - , *, / mit 
eben dieser Funktionalität.

Die Grundlagen von C++ kannst du in einem Buch nachlesen. z.B. "Der C++ 
Programmierer" von Ulrich Breymann.

Grüsse
#3198750
Richard Lunz schrieb:
> Hmm,
> kann mir das jemand zeigen wie das dann aussehen sollte?
>
> Darin
>
1
> printf << x << " + " << y << " = " << z <<endl;
2
>

Na ja. Eben entweder als C++ Stream Operationen
1
  cout << x << " + " << y << " = " << z <<endl;

oder eben auf die C-Tour
1
  printf( "%d + %d = %d\n", x, y, z );

aber du kannst nicht das eine mit dem anderen mischen. Entweder du 
benutzt die Stream Operationen, dann heißt der Ausgabestream cout oder 
eben mit printf und Formatstring.

Näheres findest du sicherlich in deinen Lernunterlagen.
#3201467
Richard Lunz schrieb:
> Calculus schrieb:
>> -> Programm Absturz
>
> Kein Absturtz

Doch.

Richard Lunz schrieb:
> So, jetzt hab ichs anstatt mit cin und cout, mit printf und scanf
> probiert, aber es kommt nur Müll raus.

Bei mir läuft das so gar nicht erst durch den Compiler. Nachdem ich das 
hier
1
ConsoleApplication2.cpp:4:20: Schwerwiegender Fehler: stdafx.h: Datei oder Verzeichnis nicht gefunden
behoben hab, kommt:
1
ConsoleApplication2.cpp:17:11: Fehler: »::main« muss »int« zurückgeben
2
ConsoleApplication2.cpp: In Funktion »void eingabe(int&, int&, int&)«:
3
ConsoleApplication2.cpp:51:31: Fehler: »scanf« wurde in diesem Gültigkeitsbereich nicht definiert
4
ConsoleApplication2.cpp: In Funktion »void ausgabe(int, int, int, int)«:
5
ConsoleApplication2.cpp:76:39: Fehler: »printf« wurde in diesem Gültigkeitsbereich nicht definiert
6
ConsoleApplication2.cpp: In Funktion »void begruessung()«:
7
ConsoleApplication2.cpp:81:41: Fehler: »printf« wurde in diesem Gültigkeitsbereich nicht definiert

und wenn ich das auch noch behebe, funktioniert es.
Gast #3202377
Da ist die berühmt berüchtigte "Division durch Null"! Diese Grundlage 
lernt man im Mathematikunterricht.

Einfach eine "if" Abfrage in die divisons Funktion einbauen und wenn der 
zweite Operand "0" ist eine Meldung ausgeben, dass eine Fehleingabe 
vorliegt.

Grundregel: Bei einer Division immer den Divisor auf != 0 prüfen. Sonst 
stürzt ein Programm unter allen Umständen ab!!!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.