Wo liegt der Fehler?! Wer kann mir helfen?
-
Ah!!! Okay! Jetzt wird mir alles klar....
Es gehts! JUHU!!!!
DANKE AN ALLE DIE GEHOLFEN HABEN!
Ich hab wieder einiges dazu gelernt!
Ich habe die Video2Brain DVD mit Helge Maus. Dort bin ich gerade dabei mir Funktionen mit Rückgabewerten anzusehen...
Zeiger, Referenzen... kommt alles noch!
Wie ihr seht bin ich echt noch am Anfang, sodass solche "kleinen" Fehler passieren können! (finde ich zumindest)
Das mit den Strings sind wieder solche "Kleinigkeiten", das erwähnen die im Video gar net... daher bin ich sehr erfreut über die Infos mit den Überschreiben etc...
Parallel will ich mal gucken wie das erstellen optischer bzw grafischer Flächen mit C++ geht... da hör ich immer WinAPI und GUI... kp was das ist und wie man das lernen kann... keinen Bock mehr auf diese Konsolenanwendungen!^^
Wenn jemand tolle Links oder so hat, kann sie ja mal per KN oder so schicken!
Nochmal danke für eure Hilfe!
-
Lass die GUI-Programmierung ersteinmal am Rand liegen. Das weiß ich aus Erfahrung. Ich konnte noch nichteinmal richtig C++, da habe ich schon mit Fenstern angefangen. War extrem schwierig...musste erst nocheinmal richtig in C++ rein, und dann ging es halbwegs.
-
Ich will ja hier nicht vom Thema oder ins falsche Thema ablenken, aber was ist GUI und WiNAPI?!
Für was bruahc ich das?! Wo kann ich es lernen?! Wann kann ich damit anfnagen?!
-
GUI = Graphical User Interface = Grafische Benutzeroberfläche = Fenster, etc.
Anfangen: sobald du sicher in C++ bist
WinAPI = Schnittstelle, um über C/C++ Fenster zu erstellen
Wo: Hmm, einfach mal im I-Net und hier in der SuFu suchen
-
BitWax schrieb:
GUI = Graphical User Interface = Grafische Benutzeroberfläche = Fenster, etc.
WinAPI = Schnittstelle, um über C/C++ Fenster zu erstellen
Das klingt verdammt gleich!
Naja! Ich erkundige mich mal genauer!
Jetzt sehe ich mich mal nach den system("PAUSE"); um....
Das soll gar nicht mal so gut sein! hab hier im Forum mal was von nem Moderator drüber gelsen! Ich geh mal suchen!^^Mal sehen was man lernen kann!^^
Danke für Eure Hilfe!
Hat mir Spass gemacht!

-
Ich habe dir zu system ("PAUSE") etwas geschrieben.
und zur GUI und WinAPI, es hört sich gleich an, weil es ähnlich ist. GUI sind eben Fenster etc. und mit der WinAPI kannst du Fenster erstellen.
-
Achso! Da liegt der unterschied!^^
Ich habe das schon gelesen mit dem System("PAUSE") aber ich will richtuige infos... warum ist das andere besser? Was muss ich beachten?! Wie setzt ich es richtig ein.... verstehste!^^
Dennoch danke dafür!

-
Du setzt es so ein, wie ich es auf irgendeiner Seite geschrieben habe, naja und wegen den W-Fragen, da musst mal gucken^^
-
Tatsächlich ist soetwas wie System("PAUSE") garnicht nötig.
Konsolenprogramme sind dazu da, aus der Konsole aufgerufen zu werden. Dort bleibt der Text sowieso erhalten.
Bei Visual C++ kannst du mit "Starten ohne debuggen" ein Schließen der Konsole verhindern. Wenn du debuggst hast du wahrscheinlich eh irgendwo einen Haltepunkt angegeben, davon geht M$ jedenfalls aus. Bei anderen IDEs wie Code::Blocks gibts ähnliche Optionen.Gruß
Don06
-
Das sag aber mal dem Endbenutzer, dass er das Programm anstatt mit einem einfachen Doppelklick erst aufwendig in der Konsole öffnen muss.
-
Einem Endnutzer würde ich nie ein Konsolenprogramm anbieten, außer es solle ein Konsolenprogramm sein und dann soll es ebend aus der Konsole aufgerufen werden

-
Also ich schreibe Serverprogramme (z.B. von Spielen) allgemein in Konsole und biete die dann auch so an

Sobald Chat o.ä. hinzukommt, ist WinAPI gefragt
Aber meine Programme sind auch darauf ausgelegt, sich nicht zu schließen, wenn alles erledigt ist.
-
BitWax schrieb:
Aber meine Programme sind auch darauf ausgelegt, sich nicht zu schließen, wenn alles erledigt ist.
Richtig! Seh ich auch so!
cin.clear (); cin.ignore (cin.rdbuf ()->in_avail ()); cin.get ()Hier wird aber geschlossen!

-
BitWax schrieb:
Achso, anstatt Sytem Pause würde ich eine wait-Funktion verwenden
#include <cstdlib> #include <iostream> using namespace std; void wait () { cin.clear (); cin.ignore (cin.rdbuf ()->in_avail ()); cin.get (); } int main() { . . . wait (); return 0; }hast du das so gemacht? bei mir schließt sich das nicht, bevor ich enter gedrückt habe.
-
Bei mir siehts gerade so aus:
#include <cstdlib> #include <iostream> #include <string> using namespace std; void wait(); int main() { string passwort; cout << "Hallo!" << endl; cout << endl; cout << "Bitte geben sie Ihr Passwort ein: "; cin >> passwort; if(passwort == "bla") { cout << "Moin!"; } else { cout << "Falsches Passwort!" << endl; } wait (); return 0; } void wait () { cin.clear (); cin.ignore (cin.rdbuf ()->in_avail ()); cin.get (); }Diese Variante, sowie deinen eben funkt net! Das Fenster wird von allein geschlosssen!
Wenn ich noch ein cout in die void wait hineinsetzte... obs dann klappt...
-
Du hast natürlich Recht, dass es auf die Situation ankommt. Aber so ein Programm wird sich doch in einer Schleife befinden, von daher sollte ein abschliessendes Warten unnötig sein. Man lässt die Schleife einfach erst dann aufhören, wenn das Programm beendet werden soll.
Ich würde es zB hassen wenn ich gerade etwas über Kommandozeile kompiliere:
g++ [options]und dann das Ganze noch mit Enter bestätigen müsste und nicht gleich weiter machen kann. zB das erstellte Programm testen. Da ich sowieso in der Konsole bin würde mich es ernuet nerven, wenn ich das Beenden des Prgrammes noch mit Enter bestätigen müsste.
Ich denke, dass das Schliessen der Konsole irgendwie überbewertet wird. Wenn man seinen Browser mit einem Klick auf das X schliesst, will man doch nicht das eine Dialog-Box kommt wo drin steht: "Drücken sie Enter um das Programm zu beenden"
Naja, du siehst sicherlich, was ich meine.
Gruß
Don06
-
Es kommt immer auf das Programm an!
Wenn es besser ist, sofot zu beenden, lass ich es auch sofort beenden, aber ich nutze dennoch relativ oft solche "Enter-Ende-Tasten"
-
Hmm, kommt auf die Art an...manchmal habe ich auch server am laufen, die zuerst nur laden, und sich dann beenden wenn ich enter gedrückt habe. Und zum compilieren habe ich mir Batch-Dateien angelegt. Das geht wesentlich schneller.
-
@BitWaX:
Ich meine ja stumpfes Warten auf Enter, ohne Grund. Bei dem was du sagst erfüllt es ja eine Funktion. Bei Anfänger dient es meist nur dazu die Ergebnisse zu sehen. Ich habe mich zu meinen Anfangszeiten ziemlich lange damit herumgetrieben, eine geeignete Methode dafür zu finden. Fast alle gängigen Methoden stießen irgendwann an ihre Grenzen (Es wurden Puffer nicht gelehrt, obwohl sie es sollten, ...). Hätte ich gewusst, dass man auch einfach "Starten ohne debuggen" drücken kann, wärs viel einfacher gewesen.Gruß
Don06
-
Achso, dann ja
