[HELP] Mein erstes c++ Program.
-
Das eine ist aus dem alten Standard, man erkennt es an der Headererweiterung .h - Fast alle neuen C++ STandard-Header haben keine Dateiendung mehr
-
Also habe nun das mit dem abbrechen eingefügt. nun will ich es auch verstehen. es bringt mir nichts wenn ich es nicht verstehe. Also wie läuft das ? Bitte erklärt das so als ob iche rst 7 wäre. DANKE
std::cin.clear();
std::cin.ignore(std::cin.rdbuf()->in_avail());
std::cin.get();
-
otze schrieb:
code [..], der seit mehr als 15 jahren nicht mehr benutzt werden sollte. 1989 wurde der neue C++ standard verabschiedet
1998
FireFlow schrieb:
Fast alle neuen C++ STandard-Header haben keine Dateiendung mehr
Nicht fast, alle.
-
ok ich hoff das ich mich nicht vertuhe aber normal sollt das so funktionieren
mose schrieb:
std::cin.clear();
löscht den tasterturbuffer (wenn du was eingegeben hast wird das dorthin geschrieben)
mose schrieb:
std::cin.ignore(std::cin.rdbuf()->in_avail());
ignoriert neuerliche eingaben in den buffer?? (sorry weis auch nicht so genau)
mose schrieb:
std::cin.get();
wartet auf eine tastertur eingabe von dir (deswegen löscht du den buffer vorher, sonst würd erst wieder durchrutschen
hoff du hast verstanden bzw. hab dir da keinen bären aufgebunden
-
Ahso. Jetzt verstehe ich das. Der erste Befehl verhindert das sich das fenster schließst. Der zweite müsste die gleiche Aufgabe haben :p und der letze beendet das Program wenn man ne Taste drückt.
-
Peace_VsC schrieb:
ok ich hoff das ich mich nicht vertuhe aber normal sollt das so funktionieren
mose schrieb:
std::cin.clear();
löscht den tasterturbuffer (wenn du was eingegeben hast wird das dorthin geschrieben)
Nope. clear() löscht alle eventuellen Fehlerbits des assoziierten Streams und gibt dem Stream den Status, der durch das Argument von clear spezifiziert wird (Defaultmäßig ist das ios::godbit).
mose schrieb:
std::cin.ignore(std::cin.rdbuf()->in_avail());
ignoriert neuerliche eingaben in den buffer?? (sorry weis auch nicht so genau)
Diese Zeile löscht (bzw. ignoriert) alle Zeichen aus dem Eingabepuffer. Oder mit anderen Worten leert den Eingabe-puffer.
mose schrieb:
std::cin.get();
wartet auf eine tastertur eingabe von dir (deswegen löscht du den buffer vorher, sonst würd erst wieder durchrutschen
Wartet auf einen Tastendruck
Caipi
-
ok fast daneben ist auch vorbei

-
Irgentwie spinnt Dev-C++ bei mir rum. Er zeigt mir einen Fehler an wo keiner ist.
44 c:\dokume1\mose\eigene1\sa11~1.cpp
parse error before `<'#include <iostream> using namespace std; int main () { cout<<"******************************************************************************"<<endl; cout<<"*Das Program kann die 3 Binomischen Formeln rechen *"<<endl; cout<<"*Bitte geben Sie erst die Faktoren ein. Danach koennen Sie die Formel * *aussuchen. *"<<endl; cout<<"******************************************************************************"<<endl; int a; int b; int c; const int l1=1; const int l2=2; const int l3=3; cout<<"Bitte geben sie den Faktor a ein."; cin>>a; cout<<"Bitte geben sie den Faktor b ein."<<endl; cin>>b; cout<<"******************************************************************************"<<endl; cout<<"*Mit welcher Formel wollen Sie fortfahren? Fuer die erste binomische Formel * *druecken sie die 1 . Fuer die zweite die 2 und fuer die dritte die 3. *"<<endl; cout<<"******************************************************************************"<<endl; cin>>c; if(c==l1) cout<<"Das Ergebnis ist: "<<((a+b)*(a+b))<<endl; if(c==l2) cout<<"Das Ergebnis ist: "<<((a-b)*(a-b))<<endl; if(c==l3) cout<<"Das Ergebnis ist: "<<((a+b)*(a-b))<<endl; else cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl; cout<<"!Leider gibt es keine vierte binomische Formel! !"<<endl; cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl cout<<"******************************************************************************"<<endl; cout<<"*Dieses Program wird noch erweiter und wenn nötich komplet verwendert. *"<<endl; cout<<"******************************************************************************"<<endl; std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); return 0; };
-
Abgesehen von der Rechtschreibung:
-> 3. cout-Ausgabe -> Zeilenumbruch innerhalb einer Konstanten
-> 3. cout nach else -> Es fehlt der Strichpunkt am EndeBTW: Dein else ist sicherlich auch nicht so gedacht: Nur eine der 3 cout nach dem else wird als else ausgeführt, der Rest wird immer ausgeführt -> Grund: else ohne Klammer nimmt nur die nächste Anweisung als else-Zweig an -> Lösung:
else { cout ... ... }MfG SideWinder
-
OK danke . ^^
-
Bashar schrieb:
otze schrieb:
code [..], der seit mehr als 15 jahren nicht mehr benutzt werden sollte. 1989 wurde der neue C++ standard verabschiedet
1998
*seufz* zahlendreher..sind trotzdem imernoch 7 Jahre
-
Du solltest die vor die letzten beiden ifs ein else schreiben, da sonst auch bei der zweiten binomischen Formel der Hinweis mit der vierten kommt. (die es übrigens doch gibt) :p
-
ja ? und wie lautet die denn?
-
a2+b2=(a+bi)(a-bi)
-
Das ist nur ein Spezialfall der dritten.
-
Und die erste und zweite sind identisch...
-
du kannst statt dem else if auch ein switch nehmen...
und statt die l1-l3 variablen zu benutzen, die zahlen direkt in die if bzw. switch abfrage reinschreiben....
ich hätt eine frage zu den .h und ohne .h headerfiles:
welche betrifft das genau?
doch nicht nur iostream oder?
MfG Kuldren
-
-
das habt ihr hier irgendwo eben angesprochen.
Welche von den ist jetzt genau für das leeren von den Puffer?
bei mir geht das nicht so ganz wie es eigentlich sollte bzw. ich dachte.mfg
-
der link geht nicht