C# Nach Console.ReadLine() kein Zeilenumbruch - geht das?

powerfx

Admiral
Registriert
Apr. 2009
Beiträge
9.351
Hallo *,

kennt jemand eine einfache Lösung, um nach Console.ReadLine() (was man ja mit Enter bestätigt) keinen Zeilenumbruch zu erzeugen?

Also irgendwie so was hier z.B.:
Code:
var = Console.ReadLine();
System.Console.Write("bar");

Gibt man "foo" ein, kommt
Code:
foo
bar
raus.

Sonst müsste ich ReadLine() duch Read() ersetzen, da ist dann aber Einiges zu ändern...
 
Nein geht nur mit der aenderung in Read, das WriteLine() liest wie der Name schon sagt nur eine Zeile und hat als Terminator das Enterzeichen gesetzt.

Sry, glaube ich habe dich falsch verstanden.

Wenn es so gemeint war das du in derselben Zeile das "bar" augeben willst:
Es gibt irgendeine Funktion um die Zeile zu wechseln wenn ich mich richtig errinere.
 
Würde mir mal die Console klasse ansehen, vielleicht gibts ja ne Methode Read :)
 
Klar gibt's eine Methode Read(), aber dann müsste ich viel Code umschreiben, der jetzt mit ReadLine() funktioniert.

Wenn man einfach nur - wie IC3HANDS schreibt - die "Zeile wechseln" könnte, wäre es deutlich einfacher.

Code:
System.Console.Write((char)8);
tut's übrigens nicht. :)
 
Readline erzeugt den immer, aber Du könntest z.B.
  • nach Readline per Console.SetCursorPosition (x, y) den Cursor zurücksetzen
  • mit sowas wie Console.CursorTop--; wieder eine Zeile zurück, CursorLeft gibt es (glaube ich) auch
  • Enter als Hotkey abfangen
  • read/readkey benutzen und umbauen
  • Dir 'ne Funktion schreiben, die die vorige Zeile in der Konsole löscht und dort dann das Eingelesene+bar ausgeben
 
Zuletzt bearbeitet:
PseudoCode:
Code:
var foo;
var foo2;
            
while ((foo2 = Console.ReadKey()).Key != ConsoleKey.Enter)
   foo += foo2.KeyChar;

Console.Write(foo); //nicht sicher ob man das braucht
Console.Write("bar");

Sollte so gehn (nicht probiert), keine Ahnung was bei Sondertasten passiert, sollten aber nur auf ein Leerzeichen gemappt werden. Würds wohl gleich mit einer regex vergleichen.

Angaben ohne Gewähr...
 
Super,

Code:
Console.CursorTop--;
genau das isses.

Habe ich selbst nicht gefunden.

Danke euch allen. :)
 
Zurück
Oben