Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?
-
Grüß Gott,
wie muß man das angehängte Programm zum Aufnehmen und Addieren zweier Ganzzahlen ergänzen, damit Folgendes passiert?
Auf dem Bildschirm soll die ganze Zeit stehen:
x=
y=
x+y=Man soll den Cursor (z. B. mittels Pfeil-oder Tabulatortaste) zwischen der ersten und zweiten Zeile hin- und herbewegen können. Wenn man etwas eingibt, soll es in der richtigen Variablen gespeichert werden und wenn beide Eingaben da sind, soll das Ergebnis angezeigt werden.
Eine grafische Oberfläche ist nicht erwünscht.Vielen Dank!
#include<stdio.h> int main(){ int x,y; printf("x=");scanf("%i",&x); printf("y=");scanf("%i",&y); printf("x+y=%i",x+y); }
-
Möchtest du einen ASCII-Graph zeichnen? Das ist sehr simple.
https://github.com/Civitasv/asciichart zum Beispiel
-
@Fragender sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
Möchtest du einen ASCII-Graph zeichnen? Das ist sehr simple.
https://github.com/Civitasv/asciichart zum Beispiel
@Fragender: Versuchst du überhaupt anderer Leute Beiträge zu lesen? Spar dir eine Antwort, ich weiß es ja schon aus früheren Threads. Außerdem liest du dies hier ja sowieso nicht.
@Ein-Gast : Das ist leider ziemlich systemabhängig, denn da musst du das Terminal(emulator) für ansteuern, und das geht von System zu System unterschiedlich. Für linuxartige Systeme: Irgendeine curses-Implementierung, zum Beispiel ncurses. Für Windows kenne ich mich nicht so aus, was da derzeit so üblich ist. Unter DOS und frühen Windows hat man conio.h genutzt, gibt es das noch? Funktioniert das noch?
Jedenfalls ist der Aufwand dafür erstaunlich hoch, und wahrscheinlich nicht gut angemessen für ein simples Lernprogramm, das du morgen schon hinter dir lassen wirst. Wenn du nicht tief in die Terminalprogrammierung einsteigen möchtest, wirst du das nie wieder im Leben brauchen. Wenn das also nur ein Lernprogramm aus Interesse ist, dann lass die äußere Schönheit sein, konzentrier dich auf die Grundtechniken und den Kern deines Programms, und gehe dann weiter zum nächsten Lernprogramm!
-
@Ein-Gast sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
Eine grafische Oberfläche ist nicht erwünscht
Meine Antwort war angemessen. Das ist so einfach wie Fußballspielen, Fahrradfahren oder Schwimmen. Keine Raketenwissenschaft. Er hat nicht geschrieben, dass er das Terminal anpassen oder emulieren möchte.
-
@Fragender ich habe den Eindruck, dass du dich im Threads vertan hast. The Graph Thread ist der andere.
-
Ach Scheiße... Ja, du hast recht, ich nehme alles zurück und bin leise.
Edit: Das war von mir eine unbeabsichtigte, unbewusste, psychologische, proaktive, interferentielle Fehlleistung. Hoffentlich sind das keine Demenzanzeichen...
-
@SeppJ sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
Für linuxartige Systeme: Irgendeine curses-Implementierung, zum Beispiel ncurses. Für Windows kenne ich mich nicht so aus, was da derzeit so üblich ist. Unter DOS und frühen Windows hat man conio.h genutzt, gibt es das noch? Funktioniert das noch?
Zur Ergänzung bezüglich Windows und ncurses.
Es gibt auch einen windows port der ncurses compatible ist (API wise)
https://github.com/Bill-Gray/PDCursesMod
-
@Ein-Gast
Falls Du das unter Windows brauchst:
https://www.c-plusplus.net/forum/topic/290292/eingabemaske-für-die-konsole
-
Vielen Dank. ncurses sieht erstmal so aus, als ob es wohl eine Lösung für die gestellte Frage und noch manch eine, die sich daran angeschlossen hätte, liefern kann. Kaum zu glauben, daß so etwas nicht in normalen Einführungen gleich hinter "printf" usw. erklärt wird...
Ist ncurses die eindeutige bzw. eine sehr gängige Wahl für solche Zwecke oder gibt es Alternativen, die man kennen sollte?
@Belli Danke, nur wird mir C++ erstmal zuviel...
-
@Ein-Gast sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
Kaum zu glauben, daß so etwas nicht in normalen Einführungen gleich hinter "printf" usw. erklärt wird...
Darum:
@SeppJ sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
Wenn du nicht tief in die Terminalprogrammierung einsteigen möchtest, wirst du das nie wieder im Leben brauchen.
@Ein-Gast sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
Ist ncurses die eindeutige bzw. eine sehr gängige Wahl für solche Zwecke oder gibt es Alternativen, die man kennen sollte?
Gängig genug, wenn du wirklich ernsthafte Terminal-GUIs schreiben möchtest.
-
@SeppJ sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
Für Windows kenne ich mich nicht so aus, was da derzeit so üblich ist. Unter DOS und frühen Windows hat man conio.h genutzt, gibt es das noch? Funktioniert das noch?
jein. der "borland c++ compiler", oder wie auch immer der heißt, kann tatsächlich noch conio.h und gotoxy, der "windows compiler" bzw. "msvcpp" kann das aber nicht mehr, da nimmt man - wie sollte es anders sein? - die windows-api und SetConsoleCursorPos.
Jedenfalls ist der Aufwand dafür erstaunlich hoch, und wahrscheinlich nicht gut angemessen für ein simples Lernprogramm, das du morgen schon hinter dir lassen wirst. Wenn du nicht tief in die Terminalprogrammierung einsteigen möchtest, wirst du das nie wieder im Leben brauchen.
da hast du allerdings recht! konsole benutzt man heutzutage in der praxis nicht mehr, bzw. nur für server, die dann über ssh oder so gesteuert werden sollen. das ist dann schon sehr speziell und eigentlich auch schon veraltet.
Gängig genug, wenn du wirklich ernsthafte Terminal-GUIs schreiben möchtest.
ja aber eigentlich nur für unixoide betriebssysteme. pthreads benutzt man unter windows auch nicht, wozu auch?die praxis sieht heutzutage (naja vor 10-15 jahren auch schon) jedenfalls eher so aus, dass man irgendwelche web-interfaces mit schaltflächen für "atomkraftwerk start" und "atomkraftwerk stop" erstellt, weil die leute keine extra software installieren wollen und jeder computer nen internetbrowser hat.
ps: sorry, hab grad langeweile.
pps: trotz allem kann man nicht mit (egal ob mit C, C++, Java, C#, Rust, Python usw.) programmieren, wenn man man die sprachelemente gelernt hat, weil man dafür jahre- und sogar jahrzehntelange erfahrung braucht. ich programmiere jetzt seit bestimmt 20 jahren mehr oder weniger hobbymäßig und trotzdem gelange ich noch regelmäßig an punkte, an denen ich das projekt einfach in den papierkorb verschieben muss, weil der aufwand, um gemachte fehler zu beheben, größer ist, als noch einmal von vorne anzufangen.
-
@Peter-Viehweger sagte in Wie ermöglicht man Nutzereingaben an mehreren Bildschirmpositionen?:
da hast du allerdings recht! konsole benutzt man heutzutage in der praxis nicht mehr, bzw. nur für server, die dann über ssh oder so gesteuert werden sollen. das ist dann schon sehr speziell und eigentlich auch schon veraltet.
Das ist ja mal völliger Unfug.