Wie programmiere ich eine einfache Addition in C++?
-
Erste Zeile:
#include <iostream>
Und die Zeile 7 sollte nur ein Semikolon haben (am Ende).
-
Habs schon danke trotzdem.
-
Kann mir bitte noch einmal jemand erklären was die << bei cout zu bedeuten haben (<<)?
Danke!
-
Wozu ist
xvom Typdoubleund nicht vom Typint?
-
Das wird verwendet als Ausgabe-Operator - ganz links steht das Ziel (cout=Standard-Ausgabe), rechts damit die auszugebenden Daten. Aber ehe du hier das Forum mit Fragen löscherst, kauf dir ein gutes Buch über C++

-
@Cstoll
Danke!
-
Hey Leute,
Wieso rechnet der PC nach meiner eingabe einer Zahl die ich per tastatur eingegeben habe nicht weiter?
#include <iostream>
using namespace std;
int main()
{
int y;
cout << "geben Sie eine Zahl ein:";
cin >> y;
cout << "Das Quadrat von " << y << " ist " << y * y << endl;getchar();
return 0;
}danke für die unterstützung!
-
Sollte er. Ich kenne
getcharnicht. Vielleicht ist es durch den, sich immer noch im Input-Buffer befindende, Delimiter getäuscht.
-
@EOutOfResources
durch den Befehl wird (nach meinem wissen nach) verhindert dass sich das sich das Dos- Fenster selbständig schliest!Sowas wie System Pause!
-
darknight11 schrieb:
durch den Befehl wird (nach meinem wissen nach) verhindert dass sich das sich das Dos- Fenster selbständig schliest!
Ganz genau. Aber wenn noch ein Zeichen im Puffer steht, wird natürlich das genommen. Wieso sollte er auch auf dich warten, wenn er schon vom Puffer gefüttert wird.

#include <iostream> using namespace std; int main() { int y; cout << "geben Sie eine Zahl ein:"; cin >> y; cout << "Das Quadrat von " << y << " ist " << y * y << endl; cout << getchar(); // 10dez --> line feed getchar(); return 0; }[ EDIT ] Das was ich da nun gemacht habe, ist natürlich nicht so schlau. Es könnten auch noch 10 Zeichen im Puffer stehen, nicht dass du dann auf die Idee kommst, 11x getchar() zu schreiben. Daher solltest du die im Puffer stehenden Zeichen einfach ignorieren:
#include <iostream> #include <limits> using namespace std; int main() { int y; cout << "geben Sie eine Zahl ein:"; cin >> y; cout << "Das Quadrat von " << y << " ist " << y * y << endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n'); getchar(); return 0; }
-
@ Gugelmoser:
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');#include <limits>
Dass mit dem Puffer ist mir leider noch nicht ganz klar (sorry) gibts für denn nicht sowas wie eine clean-funktion oder löschfunktion die man einproggn kann ? Damit der puffer nach der Compillierung wieder empty ist.
Danke
darknight11
-
cin.clear();Es werden die Flags, die einen Fehlerzustand repräsentieren, zurückgesetzt. Du gibst z.B. ein Zeichen ein obwohl eine Ganzzahl erwartet wird, und schon ist failbit true, d.h. das cin-Objekt (standard input stream) befindet sich in einem Fehlerzustand und kann nun nicht mehr für weitere Eingaben benutzt werden, außer du setzt die Flags zurück, mittels clear(). (wäre für dein Beispiel eigentlich nicht notwendig gewesen)
cin.ignore();Verwirft eine bestimmte Menge an Zeichen, die noch im Puffer stehen. Mit numeric_limits<streamsize>::max(),'\n' sagst du, es sollen einfach alle Zeichen verworfen werden (dazu brauchst du die Header 'limits').
darknight11 schrieb:
Dass mit dem Puffer ist mir leider noch nicht ganz klar (sorry) gibts für denn nicht sowas wie eine clean-funktion oder löschfunktion die man einproggn kann ? Damit der puffer nach der Compillierung wieder empty ist.
Das hat nichts mit der Kompilierung zu tun, sondern damit, wie du dein Programm zur Laufzeit behandelst. Du gibst eine Zahl ein (cin>>y) und danach drückst du die Eingabetaste (löst einen Zeilenvorschub aus). Du hast also eine Zahl und ein Zeichen eingegeben. Die Zahl wurde verarbeitet, das Zeichen steckt noch im Puffer.
-
@Gugelmoser:
Besten Danke für die ausführliche und vorallem verständliche Erklährung!
Darknight11
-
Hallo!
Ich habe hier ein If-Anweisung geschrieben:
#include <isotream>
using namespace std;
int main()
{
int zahl;
cout << "Geben Sie eine Zahl ein:";
cin >> zahl;if(zahl<50)
{
cout << "Die Zahl ist kleiner als 50." << endl;
}if(zahl>50)
{
cout << "Die Zahl ist groesser als 50." << endl;
}if(zahl==50)
cout << "Die 50 wurde eingegeben." << endl;
getchar();
ffush(stdin);
return 0;
}}
Gibt es einen Befehl der es mir erlaubt die AUSGEGEBENE ZAHL Farblich zu hinterlegen? (zB wenn die Zahl 50 eigegeben wird dann Rot)?
Danke darknight11
-
Die Zeile
ffush(stdin);ist ziemlich böse, habe ich gehört und funktioniert nur auf Windows Systemen. (Vielleicht kann hier ja jemand, der sich besser auskennt, mehr dazu sagen.)
Um farbig ausgeben zu können, musst du auf die API deines Betriessystems zurückgreifen. Machbar ist es.
-
darknight11 schrieb:
Gibt es einen Befehl der es mir erlaubt die AUSGEGEBENE ZAHL Farblich zu hinterlegen? (zB wenn die Zahl 50 eigegeben wird dann Rot)?
Und was ist, wenn die Standardausgabe zu meinem Sprachausgabeprogramm führt? Da C++ nur eine abstrakte Schnittstelle für einen Zeichenstrom nach draußen kennt, geht das nicht mit Standardmitteln.
Du kannst dich jedoch festlegen, dass deine Programme nur auf einer Konsole funktionieren, dann kannst du mit speziellen Befehlen/Formatierungszeichen für diese Konsolen die Farbe einstellen. Wie das genau geht, hängt aber von dem genauen Konsolenprogramm ab und ist leider inkompatibel zwischen unterschiedlichen Konsolen. Grob gesagt gibt es die DOS/Windows-Konsole und die Linux-Konsolen. Da musst du dich für eines entscheiden.
-
@ SeppJ
fürn anfang würde ich die Dos/Win-Konsole bevorzugen!
Darknight11
-
Dann frag mal am besten im DOS und Win32-Konsolen Forum. Oder in den dortigen FAQ, das wird sicherlich eine der häufigsten Fragen sein.
Den ganzen Thread verschiebe ich jetzt mal nicht, da es thematisch eine neue Frage ist.
-
Danke euch allen für die Zahlreichen Postings und Hilfestellungen!!
Darknight11