Was ist an meinem Quelltext falsch ?
-
problem besteht immernoch -,- warum nicht cin.sync(); beutzen ?
-
#include <iostream> #include <windows.h> #include <string> using namespace std; int Rechnung(); int main() { string Nutzer; bool Antwort; int JN; cout << "Hallo ich bin Alice, wie heissen sie ?" << endl; cin >> Nutzer; cout << "Hallo " << Nutzer << ". Lust auf ein bischen Rechnen ?" << endl; cout << "Druecke 1 fuer ja und 2 fuer nein" << endl; cin >> JN; if (JN == 1) Rechnung(); else cout << "Einen guten Tag noch " << Nutzer << " :)" << endl; system("pause"); } int Rechnung() { cout << "Hier sind die moeglichen Operatoren:" << endl; cout << "1.Plus" << endl; cout << "2.Minus" << endl; cout << "3.Mal" << endl; cout << "4.Geteilt" << endl; int resultat = 0; // Das Resultat der Rechnung, das du zurueckgibst return resultat; }*Edit
Schau genau hin bei Zeile 21. Da brauchst du den Vergleichsoperator == und nicht den Zuweisungsoperator =. Falls du den Unterschied nicht kennst dann unbedingt nachschauen.
-
kannst du mir den befehl system pasue erklären ? bitte
-
mockis schrieb:
problem besteht immernoch -,- warum nicht cin.sync(); beutzen ?
Zeig jetzt nochmal deinen abgeänderten Quellcode. Weil es Zufall ist, dass es auf deinem System funktioniert.
-
#include <iostream>
#include <windows.h>
#include <string>using namespace std;
int Rechnung();
int main()
{
string Nutzer;
bool Antwort;
int JN;cout << "Hallo ich bin Alice, wie heissen sie ?" << endl;
cin >> Nutzer;
cout << "Hallo " << Nutzer << ". Lust auf ein bischen Rechnen ?" << endl;
cout << "Druecke 1 fuer ja und 2 fuer nein" << endl;
cin >> JN;if (JN == 1)
Rechnung();
else
cout << "Einen guten Tag noch " << Nutzer << " :)" << endl;system("pause");
}int Rechnung()
{
cout << "Hier sind die moeglichen Operatoren:" << endl;
cout << "1.Plus" << endl;
cout << "2.Minus" << endl;
cout << "3.Mal" << endl;
cout << "4.Geteilt" << endl;int resultat = 0; // Das Resultat der Rechnung, das du zurueckgibst
return resultat;
}
-
mockis schrieb:
kannst du mir den befehl system pasue erklären ? bitte
Dieser Befehl hält dein Programm einfach an und wartet so lange, bis du irgendetwas eingibst. Erst dann läuft das Programm weiter.
-
danke :))
-
mockis schrieb:
danke :))
Aber lass dir gesagt sein, dass die Verwendung von
system()nicht gut ist.
-
Gugelmoser schrieb:
mockis schrieb:
danke :))
Aber lass dir gesagt sein, dass die Verwendung von
system()nicht gut ist.
Was ist denn das für eine Erklärung?
system() erzeugt einen (selbstverständlich) OS-spezifischen Konsolen-befehl. pause ist nur einer davon; er funktioniert nur in Windows, weshalb system("pause"); / system() generell oftmals kritisiert wird, obwohl du wahrscheinlich sowieso nie eine Anwendung portieren wirst...

Gib mal pause oder cls in der Konsole ein.
-
Wenn man schon systemspezifisch ist, dann will man aber selten system, welches eine ganze eigene Subshell aufmacht. Insbesondere cls ist ein gutes Beispiel dafür, wo man sicherlich nicht diesen Riesenoverhead haben möchte, wenn man stattdessen auch einfach direkt mit der DOS-Konsole sprechen könnte. Außerdem bietet system keinerlei Möglichkeit, die Ausgabe des Unterprogramms abzufangen, was man auch öfters möchte.
-
SeppJ schrieb:
Wenn man schon systemspezifisch ist, dann will man aber selten system, welches eine ganze eigene Subshell aufmacht. Insbesondere cls ist ein gutes Beispiel dafür, wo man sicherlich nicht diesen Riesenoverhead haben möchte, wenn man stattdessen auch einfach direkt mit der DOS-Konsole sprechen könnte. Außerdem bietet system keinerlei Möglichkeit, die Ausgabe des Unterprogramms abzufangen, was man auch öfters möchte.
Dass es gut ist, wenn man schonmal system-spezifisch sein darf, hat keiner gesagt (noch nie, afair)
