Animationen von cout



  • Hallo an alle,

    ich hab mal ne Frage, ob ihr wisst, wie man Animationen von cout's einfügen kann, und was es für Möglichkeiten gibt.

    Mir fällt nur eine Animation ein, also dass sich ein cout von rechts nach links bewegt bzw. umgekehrt, aber ich wüsste nicht wie ich das in mein Programm einfügen sollte.

    MfG amilo_xI



  • o.O Wie wärs noch mit von Oben nach unten und umgekehrt? Und Diagonal? Vieleicht noch nen mit nen bisschen Farbe?

    Gruß Tobi.



  • amilo_xi schrieb:

    Animationen von cout's

    Es gibt schon Leute, denen es schwer fällt, sich klar auszudrücken 🙄

    Wenn du damit meinst, dass du in der Konsole einen bewegten Text haben kannst, ist mir kein Weg dazu bekannt. Ich würd eventuell mal im WinAPI-Forum nachfragen. Generell ist die Command-Konsole aber nicht für Animationen konzipiert, und es wird wahrscheinlich auch nicht leicht zu realisieren sein, von daher würde ich mir das Ganze nochmals überlegen.



  • Welches OS?


  • Administrator

    Was verstehst du unter Animation? Vor allem von cout? ^^

    Falls du meinst Text auszugeben, zu löschen und wieder auszugeben (auf der Konsole), dann kenne ich mit reinem C++ auf Windows nur die Möglichkeit das auf einer Zeile zu erreichen. Dank dem Carriage Return "\r" kannst du zurück an den Zeilenanfang springen und die Zeile mit neuen Zeichen überschreiben. Keine Ahnung, ob das auf anderen Plattformen auch funktioniert. Allenfalls könntest du das Backspace steuerzeichen "\b" verwenden, um eine beliebige Anzahl Zeichen zu löschen. Allerdings weiss ich nicht, wo und ob es funktioniert.

    Nicht mit reinem C++, bzw. mit Hilfe von API Funktionen, gibt es bei Windows (WinAPI), die Konsolenfunktionen, welche du hier dokumentiert finden kannst:
    http://msdn.microsoft.com/en-us/library/ms682073.aspx

    Grüssli



  • Sicher geht das!!!

    Habe auch gleich mal Programmiert um es euch zu beweise:

    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include <windows.h>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        cout << "test";
    
        Sleep(500); 
    
        cout << "\r" << "\t test";
    
        Sleep(500); 
    
        cout << "\r" << "\t\t test";
    
            Sleep(500); 
    
        cout << "\r" << "\t\t\t test";
    
            Sleep(500); 
    
        cout << "\r" << "\t\t\t\t test";
    
            Sleep(500); 
    
        cout << "\r" << "\t\t\t\t\t test";
    
        getchar();
        return EXIT_SUCCESS;
    }
    

    Na, was sagt ihr jetzt? 😃



  • @T0bi: Normalerweiße würde alles was du da Vorgeschlagen hast funktionieren. :p



  • Hier noch eine etwas kürzere Form deines Codes (ich hatte gerade Lust, etwas zu verändern) 😉
    Ein paar Sachen solltest du (neben der For-Schleife, für die du wahrscheinlich zu faul warst), noch ändern:

    #include <iostream>  // überschneidet sich ziemlich mit den anderen Header
    #include <windows.h> 
    
    using namespace std; 
    
    int main() // es geht auch ohne Parameter
    {
    	std::string Test("test");
    
    	for (short i = 0; i < 5; i++) // es gibt in C++ Schleifen :P
    	{
    		cout << "\r" << Test.c_str();
    		Test.insert(0, "\t");
    		Sleep(500);
    	}
        cout<<endl;
        system("pause"); 
    }
    

    Und die Escapesequenz "\b" funktioniert nur auf der Zeile, auf der man sich gerade befindet.



  • Ja, hatte Angst das mir jemand zuvorkommt 😉



  • gibts noch befehle indem man das cout nach unten verschieben kann bzw. nach oben?

    danke schonmal für den code 😉



  • Schau dir mal die Improved Console von SideWinder an.


Anmelden zum Antworten