Mein erster Rechner
-
Hey,
ich habe mir mal die Zeit genommen und ein Plus Rechner geschrieben.
Klar es ist nicht gerade viel, aber ich wüsste gerne ob ich irgendwo was verbessern könnte.//Plus Rechner by Raidenkk(Konsole) #include <iostream> using namespace std; //Variablen int Wert1 = 0; int Wert2 = 0; int Ergebniss = 0; //Hauptschleife int main(){ //Vorstellung cout << "<~[ Plus Rechner by Raidenkk ]~>\n"; cout << endl; //Eingabe Wert1 cout << "Geben sie den ersten Wert ein: \n"; cin >> Wert1; //Eingabe Wert2 cout << "Geben sie nun den zweiten Wert ein: \n"; cin >> Wert2; //Rechnung Ergebniss = Wert1 + Wert2; //Ausgabe cout << "Ihr Ergebniss lautet: " << Ergebniss << endl; system("Pause"); return 0; }MFG:
Raidenkk/Kevin
-
system("Pause");Ist systemabhängig. Eine angemessenere Lösung findest du hier
-
Und warum die Variablen nicht lokal in main deklarieren statt global?
-
ja das system werde ich jetzt ersetzen aber warum sollte man die Variablen local machen? global kann man sie doch immer nutzen ist das nicht zum vorteil ?
Edit:
Ich habe mein Programm code mal geändert ich denke so sollte es richtig sein.//Plus Rechner by Raidenkk(Konsole) #include <iostream> #include <stdio.h> using namespace std; //Wait Function - Damit das Programm sich nicht einfach schließt. void wait () { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdin, NULL, _IOFBF, BUFSIZ); getchar(); } //Hauptschleife int main(){ //Variablen - Local int Wert1 = 0; int Wert2 = 0; int Ergebniss = 0; //Vorstellung cout << "<~[ Plus Rechner by Raidenkk ]~>\n"; cout << endl; //Eingabe Wert1 cout << "Geben sie den ersten Wert ein: \n"; cin >> Wert1; //Eingabe Wert2 cout << "Geben sie nun den zweiten Wert ein: \n"; cin >> Wert2; //Rechnung Ergebniss = Wert1 + Wert2; //Ausgabe cout << "Ihr Ergebniss lautet: " << Ergebniss << endl; wait(); return 0; }
-
Nein, dass ist nicht von Vorteil. Wenn du Variablen in einer anderen Funktion nutzen willst, mach es mit Übergabeparameter. Infos dazu findest du unter anderem hier
-
Da hat SideWinder drei Möglichkeiten gezeigt zu verhindern, dass sich die Konsole nach der Ausführung schliesst und du entscheidest dich für die C-Variante mit undefiniertem Verhalten?

-
ich habe mal ein Test gemacht und hoffe das dies eine bessere Variante ist das mein Programm sich nicht einfach schließt^^
#include <iostream> #include <conio.h> #include <windows.h> using namespace std; //Function wait void wait () { // EXTRA! cout << endl; cout << endl; cout << "<Push a [Key] to Close!>"; // Leere Puffer FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE)); // Lese den nächsten Tastendruck getch(); } //Hauptschleife int main(){ cout << "TEST!"; wait(); return 0; }
-
Warum nimmst Du nicht einfach die C++ Variante???
-
Weil man bei der enter drücken muss. Ich kann verstehen, dass man die nicht nehmen will.
Wichtig zu wissen ist aber bei der conio-Variante, dass das eben nicht portabel ist. Auf Dauer sollte also kein Programm so etwas enthalten.
-
ich habe mich doch für die c++ Variante entschieden.
Ist es eigentlich möglich erst die Main schleife zu schreiben und dann darunter die Funktionen? ich habe vorher mit Blitz Basic Programmiert und da ist es eigentlich so üblich^^?
-
Ja, ist es.
Dazu musst du dem Compiler nur "versprechen" eine bestimmte Funktion später zu schreiben. Das ganze nennt sich forward deklaration.
void wait(); int main() { wait(); return 0; } void wait() { cout << "blablabla" << endl; }
-
ahh oki ich danke dir^^ (EUCH)
-
#include <iostream> int main() { std::cout << "Geben Sie 2 Zahlen ein!" << std::endl; int a, b; std::cin >> a >> b; std::cout << "Die Summe ist " << a + b << std::endl; std::cin.get(); }Mal ne schön portable Lösung :p
Weiters ist 'main' keine Schleife, sondern eine Funktion.