Me escribió el siguiente programa en C y cuando lo ejecuto, me sorprendió mirando a la salida.

Aquí está el programa

int main()
{    
       printf("\nab");
       printf("\bsi");    
       printf("\rha");    
}

El resultado es :- hai
mientras que yo esperaba «absiha» desde \n es para la nueva línea, \b es para el retroceso(no borrar) \r es el retorno de carro. Así que esperaba que curson sería en la «i» porque \r ha sido aplicado, pero cuando lo ejecuto y vio a la salida yo estaba totalmente sorprendido y confundido. Puede alguien por favor me explique el resultado?

Podría ser específicas del sistema operativo.

OriginalEl autor trapaank | 2012-02-12

2 Comentarios

  1. 18

    Vamos a dar un paso a la vez:

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

    Primera, controlar el retroceso. Tenga en cuenta que aunque se trata de «no borrar», el siguiente carácter a la salida, se sobrescribirá lo que fue backspaced sobre:

    <new line>asi<carriage return>ha

    Ahora, un retorno de carro medio para volver al principio de la línea. Así que el «ha» sobrescribe el «como» en «asi:

    <new line>hai

    Ahora, el cursor está actualmente sentado en el i, por lo que el siguiente carácter a la salida, se sobrescribirá i.

    te refieres a la tecla de retroceso sólo mover el cursor una posición de antes? como una instrucción insert ?
    Estoy a mitad de adivinar que es lo que se entiende por «no borrar», pero lo he visto antes en otros contextos – como, si he de salida de la terminal en un programa de ejecución larga, a continuación, pulse la tecla de retroceso en el teclado, el cursor se mueve más, pero el personaje en sí permanece allí hasta nueva salida se coloca en la parte superior de la misma. No tienen ni idea de lo que quieres decir con «como una instrucción insert».
    gran explicación, gracias 🙂

    OriginalEl autor

  2. 4

    Visita http://en.wikipedia.org/wiki/Escape_sequences_in_C

    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

    gracias por la respuesta informativa. Probablemente usted debe leer la pregunta en primer lugar.

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here