clrscr() - bei visual c++ nicht möglich?bei borland builder schon!



  • hallo wieso geht bei visual c++ die funktion clrscr() nicht?
    und beim borland c++ builder schon?
    muß ich mir für visual c++ eine eigene funktion schreiben?
    hätte da wer ein stück code - wie ich das angehen kann?
    danke 🙂



  • gehört eigentlich nach Konsole. Aber soviel zum Thema clrscr(): Diese Funktion gehört nichtindie standard C Library. Sie iste ine Funktion, welche Borland in einer erweiterten Library implementiert hat.

    Am Besten du wirfst mal einen Blick in die Konsolen FaQ da könntest du w as finden.

    -junix



  • clrscr kenn ich noch von Turbo Pascal, das ja bekanntlich von Borland ist.

    Probier es mal mit der Escape-Sequenz "\033[2J". Bei einigen Compilern führt es zu Löschung des Bildschirms, ob es bei Visual C++ klappt...

    Try and ...



  • @smo
    leider nur bei win98 und wenn die ansi sys eingebunden ist in der config sys.

    steht aber alles in konsolenfaq, ich würde bei höherem windows auf die konsolenapi mit #include <windows.h> zurückgreifen.



  • das mit <windows.h> geht leider auch nicht. naja ich werde versuchen mir so ein "teil" selbst zu schreiben.
    danke nochmal 🙂



  • ein (zugeben) nicht ganz sauberes system("cls");
    tut es auch.

    Devil



  • Naja, wie wäre es unter Windows mit...

    #include <cstdlib>
    ...
    std::system("cls");
    

    ?



  • fürs windows geht das :

    /************************************************************************ * FUNCTION: cls(HANDLE hConsole)                                        * *                                                                       * * PURPOSE: clear the screen by filling it with blanks, then home cursor * *                                                                       * * INPUT: the console buffer to clear                                    * *                                                                       * * RETURNS: none                                                         * *************************************************************************/
    void cls(HANDLE hConsole) 
    {   
    	COORD coordScreen = { 0, 0 }; 
    	/* here's where we'll home the cursor */   
    	BOOL bSuccess;   DWORD cCharsWritten;   
    	CONSOLE_SCREEN_BUFFER_INFO csbi; 
    	/* to get buffer info */   
    	DWORD dwConSize;
    	/* number of character cells in the current buffer */   
    	/* get the number of character cells in the current buffer */  
    	bSuccess = GetConsoleScreenBufferInfo(hConsole, &csbi);  
    //	PERR(bSuccess, "GetConsoleScreenBufferInfo");   
    	dwConSize = csbi.dwSize.X * csbi.dwSize.Y;   
    	/* fill the entire screen with blanks */   
    	bSuccess = FillConsoleOutputCharacter(hConsole, (TCHAR) ' ',      
    		dwConSize, coordScreen, &cCharsWritten);   
    	//PERR(bSuccess, "FillConsoleOutputCharacter"); 
    	/* get the current text attribute */   
    	bSuccess = GetConsoleScreenBufferInfo(hConsole, &csbi);   
    //	PERR(bSuccess, "ConsoleScreenBufferInfo");  
    	/* now set the buffer's attributes accordingly */   
    	bSuccess = FillConsoleOutputAttribute(hConsole, csbi.wAttributes,       
    		dwConSize, coordScreen, &cCharsWritten);   
    	//PERR(bSuccess, "FillConsoleOutputAttribute"); 
    	/* put the cursor at (0, 0) */   bSuccess = SetConsoleCursorPosition(hConsole, coordScreen);   
    //	PERR(bSuccess, "SetConsoleCursorPosition");   
    	return;
    } 
    
    Aufruf:
    cls(GetStdHandle(STD_OUTPUT_HANDLE));
    


  • Grauslich! system() - extrem langsam, konsolenabhängig

    Nicht mal in Notfällen!

    ---

    Warum geht die <windows.h> nicht? Imho nützt die <conio.h> intern meistens die selben Betriebssystem aufrufe.

    Ansonsten siehe Konsolen-FAQ: Dort findest du unter Escapesequenzen und Improved Console Material.

    MfG SideWinder



  • hallo - das ist es kurz und bündig.
    nur welche header datei von nötein ist habe ich noch nicht ausgetestet.
    ich habe von windows.h bis dos.h so ziemlich alles "eingebaut".
    🙂



  • system? Das ist es nicht!

    - extremst langsam
    - konsolenabhängig
    - die Konsole bewertet den String "cls" - kann sein, dass die Software im nächsten Windows nicht mehr funktioniert
    etc.

    Also lieber mal in die FAQ schauen. Wenn du die <windows.h> sowieso includet hast kannst du auch gleich die Improved Console benützen!

    Einmal noch ein Wort zu system("cls")...

    MfG SideWinder


Anmelden zum Antworten