Wie kann ich einen Bildschirm leeren in C++



  • Wie kann ich den Bildschirm von der Eingabenaufforderung leeren, ohne dabei den befehl system("cls") zu verwenden.


  • Mod

    Ohne systemspezifische Mittel kannst du dies nicht tun. Die Tatsache, dass du mit einer Eingabeaufforderung arbeitest ist nämlich schon systemspezifisch und im völlig systemneutralen Sprachstandard gibt es daher keine speziellen Mittel dafür. Nehme ich recht an, dass dein Programm auf einer DOS- oder Windows-Konsole laufen soll? Falls ja, dann frag mal in diesem Forum nach:
    http://www.c-plusplus.net/forum/viewforum-var-f-is-13.html



  • Nee, ich meine, dass(MACHE MIR BLOß KEINE VORURTEILE!!!! 😡 😡 😡 😡 😡 😡 ) ich mein eigenes OS ja machen will, da aber es im Computer starten soll, die system befehle nicht funktionieren! Deshalb brauche ich eine andere Art!



  • Ganz einfach den Videospeicher mit Leerzeichen überschreiben.

    Wenn du wirklich ein eigenes OS machen willst, dann sollte das kein Problem für dich sein. Ist es doch eins, dann bist du bei weitem nicht in der Lage auch nur annähernd etwas OS-technisches auf die Beine zu kriegen.



  • GRRRR.... 😡 😡 😡 😡 ICH SAGTE KEINE VORURTEILE!!!!! Es soll auch kein großes OS werden! Aber, geht die Anwendung clrscr() in C++ durch irgendeine spezielle Biblothek?


  • Mod

    sebastianfox schrieb:

    Nee, ich meine, dass(MACHE MIR BLOß KEINE VORURTEILE!!!! 😡 😡 😡 😡 😡 😡 ) ich mein eigenes OS ja machen will, da aber es im Computer starten soll, die system befehle nicht funktionieren! Deshalb brauche ich eine andere Art!

    Dann musst du die Damen(?) und Herren in diesem Forum fragen, aber ich fürchte die Entwicklung eines eigenen OS übersteigt deinen Kenntnisstand um viele Jahre. Dies soll dich jetzt nicht runtermachen, das geht nun einmal ganz klar aus deinen Fragen hervor. Die ist anscheinend noch nicht einmal richtig bewusst, was ein OS eigentlich macht und wie deine Programme mit dem OS das du jetzt benutzt zusammenarbeiten. Solche Sachen wie das _mkdir aus deinem anderen Thread ist nämlich keine systemunabhängige Methode. DAS LÄUFT NUR UNTER WINDOWS! Wenn du ein eigenes System entwickeln willst, musst du an einer viel viel grundlegenderen Stelle ansetzen. Selbst viele der Dinge aus der C++-Standardbibliothek kannst du dann nicht benutzen, da du erstmal eine neue Standardbibliothek für dein System programmieren musst.



  • SeppJ schrieb:

    sebastianfox schrieb:

    Nee, ich meine, dass(MACHE MIR BLOß KEINE VORURTEILE!!!! 😡 😡 😡 😡 😡 😡 ) ich mein eigenes OS ja machen will, da aber es im Computer starten soll, die system befehle nicht funktionieren! Deshalb brauche ich eine andere Art!

    Dann musst du die Damen(?) und Herren in diesem Forum fragen, aber ich fürchte die Entwicklung eines eigenen OS übersteigt deinen Kenntnisstand um viele Jahre. Dies soll dich jetzt nicht runtermachen, das geht nun einmal ganz klar aus deinen Fragen hervor. Die ist anscheinend noch nicht einmal richtig bewusst, was ein OS eigentlich macht und wie deine Programme mit dem OS das du jetzt benutzt zusammenarbeiten. Solche Sachen wie das _mkdir aus deinem anderen Thread ist nämlich keine systemunabhängige Methode. DAS LÄUFT NUR UNTER WINDOWS! Wenn du ein eigenes System entwickeln willst, musst du an einer viel viel grundlegenderen Stelle ansetzen. Selbst viele der Dinge aus der C++-Standardbibliothek kannst du dann nicht benutzen, da du erstmal eine neue Standardbibliothek für dein System programmieren musst.

    Eine Standartbiblothek....Meinst du etwa so was, dass ich meine eigene Headerdatei programmiere und sie dann benutze? Aber wie geht das? Ich glaube, dass ich für die Biblothek mehr Zeit brauche als für mein OS...(P.S:: ES ist kein Graphisches OS!)



  • sebastianfox, was verstehst du genau unter OS? Ich fürchte, die Vorstellungen gehen hier ein wenig auseinander.



  • Ich habe dir die Antwort schon genannt.

    Da du dein eigenes OS schreibst, kannst du keine Bibliotheken nutzen. Nicht einmal die C++ oder C Standardbibliothken.

    Aber ich wiederhole die Lösung noch einmal für dich:
    Du musst den Videospeicher mit Leerzeichen überschreiben.

    Außerdem war das kein Vorurteil, sondern Fakt.



  • Natürlich, du musst deine eigenen Bibliotheken schreiben.

    Aber es ist doch echt nicht kompliziert, überschreibe einfach den gesamten Videopuffer mit Leerzeichen, Kinderkram.

    char* vPuffer = ADDRESSE_DEINES_VIDEOPUFFERS;
    for(int i = 0; i < 80 * 25; ++i)
        vPuffer[i] = ' ';
    


  • Janjan schrieb:

    Ich habe dir die Antwort schon genannt.

    Da du dein eigenes OS schreibst, kannst du keine Bibliotheken nutzen. Nicht einmal die C++ oder C Standardbibliothken.

    Aber ich wiederhole die Lösung noch einmal für dich:
    Du musst den Videospeicher mit Leerzeichen überschreiben.

    Außerdem war das kein Vorurteil, sondern Fakt.

    Yeah.........Aber auf welcher Sprache soll ich dann mein OS schreiben? QBASIC? 😃 😃 😃 😃 😃



  • Was heißt hier kein "großes" OS? Ein OS entwickelt man nicht einfach so. Auch ein vergleichsweise kleines OS zu entwickeln ist ein riesen Projekt. Hier gibt es Informationen zur OS-Entwicklung:

    http://henkessoft.de/OS_Dev/OS_Dev1.htm

    Schau dir mal an, wie dort Ausgaben, etc. gemacht werden. Nicht mit befehlen wie z.B. cout oder print, sondern durch direktes schreiben in den Videospeicher. Nicht für ungut, aber ich glaube, dass du erst einmal die Grundlagen von C++ und auch (ein wenig) Assembler, bevor du dich an die Entwicklung eines OS herantastest. Auch solltest du dir ansehen, wie der Computer überhaupt funktioniert. Hier gibt es noch in tolles Simulationsprogramm:

    http://gymnasium-kreuztal.dyndns.org/pub/bscw.cgi/108059

    MfG, Jochen



  • Wäre eine Möglichkeit, aber da musst du die Sprache auch zuerst können. Dort wirst du ebenfalls die Standardbefehle nicht nutzen können.



  • Jochen S. schrieb:

    Was heißt hier kein "großes" OS? Ein OS entwickelt man nicht einfach so. Auch ein vergleichsweise kleines OS zu entwickeln ist ein riesen Projekt. Hier gibt es Informationen zur OS-Entwicklung:

    http://henkessoft.de/OS_Dev/OS_Dev1.htm

    Schau dir mal an, wie dort Ausgaben, etc. gemacht werden. Nicht mit befehlen wie z.B. cout oder print, sondern durch direktes schreiben in den Videospeicher. Nicht für ungut, aber ich glaube, dass du erst einmal die Grundlagen von C++ und auch (ein wenig) Assembler, bevor du dich an die Entwicklung eines OS herantastest. Auch solltest du dir ansehen, wie der Computer überhaupt funktioniert. Hier gibt es noch in tolles Simulationsprogramm:

    http://gymnasium-kreuztal.dyndns.org/pub/bscw.cgi/108059

    MfG, Jochen

    Also, ich kann die Grundlagen von C++ aber ich verstehe von Assembler NUR Bahnhof!



  • Jede Sprache, die nativ kompiliert und zu der du Objectfiles linken kannst, ist möglich.



  • Icematix schrieb:

    Jede Sprache, die nativ kompiliert und zu der du Objectfiles linken kannst, ist möglich.

    Ja, da haste Recht! Bill Gates hat ja auch Biblotheken Benutzt und was kam raus:
    Ein OS! Und es lief noch! 😮 😮 😮 😮 😮 😮



  • sebastianfox schrieb:

    Jochen S. schrieb:

    Was heißt hier kein "großes" OS? Ein OS entwickelt man nicht einfach so. Auch ein vergleichsweise kleines OS zu entwickeln ist ein riesen Projekt. Hier gibt es Informationen zur OS-Entwicklung:

    http://henkessoft.de/OS_Dev/OS_Dev1.htm

    Schau dir mal an, wie dort Ausgaben, etc. gemacht werden. Nicht mit befehlen wie z.B. cout oder print, sondern durch direktes schreiben in den Videospeicher. Nicht für ungut, aber ich glaube, dass du erst einmal die Grundlagen von C++ und auch (ein wenig) Assembler, bevor du dich an die Entwicklung eines OS herantastest. Auch solltest du dir ansehen, wie der Computer überhaupt funktioniert. Hier gibt es noch in tolles Simulationsprogramm:

    http://gymnasium-kreuztal.dyndns.org/pub/bscw.cgi/108059

    MfG, Jochen

    Also, ich kann die Grundlagen von C++ aber ich verstehe von Assembler NUR Bahnhof!

    Dann hast du dir schlichtweg das falsche Projekt ausgesucht. Eigne dir erstmal das nötige Grundwissen an, welches du ganz offensichtlich nicht hast.

    Übrigens: Um den Bildschirm zu leeren brauchst du nicht einmal Assembler.



  • Ich glaube, dass wir unter dem Begriff "Grundkenntnisse" ganz verschiedene Dinge meinen. Mein Buch, dass die Sprache C++ lehrt, ist rund 1200 Seiten dick. Dass du keine ausreichenden Kenntnisse besitzt, zeigen die Fragen, welche du in diesem Forum stellst.



  • sebastianfox schrieb:

    Bill Gates hat ja auch Biblotheken Benutzt und was kam raus:
    Ein OS! Und es lief noch! 😮 😮 😮 😮 😮 😮

    Edit: Diese "Bibliotheken" machen aber nichts plattformspezifisches.

    Nicht ganz. Das erste Betriebssystem für den IBM-PC war nicht von ihm, er hast es nur gekauft. Der Quelltext von QDOS bestand aus rund 4000 Zeilen Assemblercode.



  • Jochen S. schrieb:

    sebastianfox schrieb:

    Bill Gates hat ja auch Biblotheken Benutzt und was kam raus:
    Ein OS! Und es lief noch! 😮 😮 😮 😮 😮 😮

    Nicht ganz. Das erste Betriebssystem für den IBM-PC war nicht von ihm, er hast es nur gekauft. Der Quelltext von QDOS bestand aus rund 4000 Zeilen Assemblercode.

    Ich meine Windows 1. Es ist auf C geshcrieben.


Anmelden zum Antworten