C++ Ausgabe Überschreiben



  • Hallo ich bin dabei ein Programm in c++ zu schreiben welchen von 0% bis 100% hochzählen soll! Die Ausgabe soll jedesmal auf der Stelle ausgegben werden! Und nicht nacheinder ausgegeben werden...hat jemand ne idee?

    Danke

    Max



  • board- oder googlesuche nach "improved console", sofern es um windows geht.
    unter linux weiss ich so nichts, musst mal gucken, die du den "cursor" an eine bestimmte stelle verschieben kannst.

    mfg,
    julian



  • Wenn du mit den Borland Builder arbeitest koenntest du die funktionen
    - clrscr( )
    - gotoxy( )
    benutzen.

    Gruß Tobi.



  • Dafür ist nicht zwingend der Borland-Builder nötig. Der GCC, MinGW und der MSVC bringen mit der conio.h standardmäßig getch() mit. Für clrscr() kannst du die folgende Implementation hernehmen:

    void ClearScreen()
    {
    	::COORD coordScreen = { 0, 0 };
    	::DWORD cCharsWritten;
    	::CONSOLE_SCREEN_BUFFER_INFO csbi;
    	::DWORD dwConSize;
    	::HANDLE hConsole = ::GetStdHandle(STD_OUTPUT_HANDLE);
    	::GetConsoleScreenBufferInfo(hConsole, &csbi);
    	dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
    	::FillConsoleOutputCharacter(hConsole,(TCHAR) ' ', dwConSize, coordScreen, &cCharsWritten);
    	::GetConsoleScreenBufferInfo(hConsole, &csbi);
    	::FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
    	::SetConsoleCursorPosition(hConsole, coordScreen);
    }
    

    Zu empfehlen wäre aber trotzdem die ImprovedConsole, falls du noch mehr grafische Dinge vorhast.



  • etwas sehr viele :: da oben^^
    findest du nicht?
    🙂



  • Doch, schon...



  • mikey schrieb:

    Dafür ist nicht zwingend der Borland-Builder nötig. Der GCC, MinGW und der MSVC bringen mit der conio.h standardmäßig getch() mit. Für clrscr() kannst du die folgende Implementation hernehmen:

    void ClearScreen()
    {
    	::COORD coordScreen = { 0, 0 };
    	::DWORD cCharsWritten;
    	::CONSOLE_SCREEN_BUFFER_INFO csbi;
    	::DWORD dwConSize;
    	::HANDLE hConsole = ::GetStdHandle(STD_OUTPUT_HANDLE);
    	::GetConsoleScreenBufferInfo(hConsole, &csbi);
    	dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
    	::FillConsoleOutputCharacter(hConsole,(TCHAR) ' ', dwConSize, coordScreen, &cCharsWritten);
    	::GetConsoleScreenBufferInfo(hConsole, &csbi);
    	::FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
    	::SetConsoleCursorPosition(hConsole, coordScreen);
    }
    

    Zu empfehlen wäre aber trotzdem die ImprovedConsole, falls du noch mehr grafische Dinge vorhast.

    Immer diese Leute, die davon ausgehen, das man Windows User ist ... 🙄



  • <iostream>
    <stdlib.h>
    
    int main()
    {
     int i ;
    
     for (i = 0; i < 100; i++)
     {
      cout << i << "%" << endl ;
      system ("cls") ; // Ist nicht sehr schön, wird aber denke ich hier reichen!
     }
     return 0 ;
    }
    

    MfG WilMen :xmas1:



  • ich würd gotoxy vorziehen, bei clearscreen flimmer der screen zu doll, besonders wenn es ganz schnell geht, ausßerdem glaub ich nicht dass nur die % ausgegeben werden sollen, sondern auch was anderes. also gotoxy wär glaub cih besser.



  • max1000 schrieb:

    Hallo ich bin dabei ein Programm in c++ zu schreiben welchen von 0% bis 100% hochzählen soll! Die Ausgabe soll jedesmal auf der Stelle ausgegben werden! Und nicht nacheinder ausgegeben werden...hat jemand ne idee?

    Danke

    Max

    Kann sein, aber ich habe nur das gemacht, was er wollte. Er sagte nichts von einer bestimmten Position, also dass er die Koordinaten angeben möchte. Er sagte nur, dass der Text immer an der gleichen Stelle ausgegeben werden soll. Kann aber sein, dass du trotzdem recht hast! Ja,

    system ("cls");
    

    ist auch nicht gerade eine sehr schöne Möglichkeit!

    MfG WilMen :xmas1:


Anmelden zum Antworten