Benötigen Sie Hilfe, um zu verstehen, wie \ n, \ b und \ printf ausgegeben werden

9

Ich schrieb das folgende Programm in das C und als ich es ausführte, war ich überrascht von der Ausgabe.

Hier ist das Programm

%Vor%

Die Ausgabe ist: - hai während ich "absiha" erwartet habe, da \ n für eine neue Zeile ist, \ b ist für die Rücktaste (nicht löschbar) und \ r ist für den Wagenrücklauf. Also habe ich erwartet, dass curson bei "i" Charakter sein würde, weil \ r angewendet worden ist, aber wenn ich es laufen lasse und die Ausgabe sehe, war ich total überrascht und verwirrt. Kann mir bitte jemand die Ausgabe erklären?

    
ankurtr 12.02.2012, 21:39
quelle

2 Antworten

17

Gehen wir Schritt für Schritt vor:

<new line>ab<backspace>si<carriage return>ha

Behandeln Sie zuerst die Rücktaste. Beachten Sie, dass das nächste Zeichen, das ausgegeben werden soll, überschreibt, obwohl es "nicht löschbar" ist, was rückgestrichen wurde:

<new line>asi<carriage return>ha

Ein Wagenrücklauf bedeutet nun, zum Anfang der Zeile zurückzukehren. Also überschreibt das "ha" das "as" in "asi:

<new line>hai

Der Cursor sitzt jetzt auf i , sodass das nächste auszugebende Zeichen i überschreiben würde.

    
Izkata 12.02.2012, 21:48
quelle
4

Besuchen Sie Ссылка

Escape Sequence Character \a Bell (speaker beeps) \b Backspace (non-erase) \f Form feed/clear screen \n New line \r Carriage Return \t Tab \v Vertical tab \ Backslash \? Question mark \' Single quote \" Double quote \xnn Hexadecimal character code nn \onn Octal character code nn \nn Octal character code nn

    
ridox 10.04.2014 05:05
quelle

Tags und Links