In bestimmte Zeile der Ausgabe Konsole schreiben



  • Wie kann ich etw. in eine bestimmte Zeile der Ausgabekonsole schreiben?

    - Ohne Leerzeichen
    - Ohne endl;

    Es darf also der Rest der Konsole nicht "gefüllt" sein ( so wie es z.B durch endl oder Leerzeichen entsteht ) !

    Danke im vo rraus !



  • Dafür gibt es keine portable Möglichkeit. Für welches OS programmierst du denn?



  • bin neu hier ^^ was heisst OS 😕


  • Administrator

    °Stealth° schrieb:

    bin neu hier ^^ was heisst OS 😕

    OS: Operating System.
    Und falls dein Englisch nicht so gut ist: Betriebsystem.

    Grüssli



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • achso -.- danke dir ^^ Windows 7



  • probier es mal mit SetConsoleCursorPos() (habe die genaue syntax grade nicht om kopf, einfach mal googln...)

    mfg,
    andi01.



  • habe den code jetzt doch mal nachgeschaut, hier mal 3 (ungetestete!) Beispiele:

    so holt man sich die Position des Konsolencursors:

    POINT consolecursorposition()
    {
    	int cursorx;
    	int cursory;
    
    	CONSOLE_SCREEN_BUFFER_INFO consoleinfo;
    
    	//info holen
    	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &consoleinfo);
    
    	//consolecursorposition aus info raussuchen
    	cursorx = consoleinfo.dwCursorPosition.X;
    	cursory = consoleinfo.dwCursorPosition.Y;
    
    	POINT position;
    
    	//in POINT konvertieren:
    	position.x=cursorx;
    	position.y=cursory;
    
    	//zurückgeben:
    	return position;
    }
    

    diese funktion gibt sie Position als POINT-Struktur zurück;

    so ändert man die Position des ConsoleCurosors:

    void schreibort_konsole_setzen(int x, int y)
    {
    	HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );
    	COORD pos = {x, y};
    	SetConsoleCursorPosition ( hConsole, pos );
    }
    

    um an einen bestimmten Ort zu schreiben und die Position danach zurückzusetzen muss man beide funktionen kombinieren, das könnte zB so aussehen:

    void an_position_in_konsole_schreiben(string text, int x, int y)
    {
    	//vorherige Position sichern:
    	POINT position_vorher=consolecursorposition();
    	//neue position setzen:
    	schreibort_konsole_setzen(x, y);
    	//hinschreiben:
    	cout<<text;
    	//schreibort vorher konvertieren:
    	int x_vorher=position_vorher.x;
    	int y_vorher=position_vorher.y;
    
    	//schreibort zurücksetzen:
    	schreibort_konsole_setzen(x_vorher, y_vorher);
    }
    

    ich hoffe es hat dir weitergeholfen,
    andi01.

    P.S.: funktioniert es jetzt?


Anmelden zum Antworten