我的代码中的\ b不会带回光标

时间:2013-03-28 17:11:13

标签: c cursor backspace

#include <stdio.h>

int main()
{
    int answer;
    printf("Please insert your desired budget :"); //normal printf functions.
    printf(" $_____\b\b\b\b"); //This should move the curser back 4 spaces.
    //The program outputs the line followed with 4 inverted question marks.
    scanf("%d", &answer);
    printf("So your budget is %d", answer);
    return 0;
}

为什么输出是4个倒置问号?我在Mac上使用xcode,可能是问题吗?

2 个答案:

答案 0 :(得分:3)

您需要在支持\b转义序列的终端环境中运行它。 Xcode中的控制台一定不能理解它们。

如果你在终端应用程序中运行它,它应该没问题。

答案 1 :(得分:1)

书中有一个例子[C Primer Plus] 6th Page.91

list3.10 escape.c

/* escape.c -- uses escape characters */
#include <stdio.h>


 int main(void)
{
     float salary;
     printf("\aEnter your desired monthly salary:");/* 1 */ 
     printf(" $_______\b\b\b\b\b\b\b"); /* 2 */ 
     scanf("%f", &salary);
     printf("\n\t$%.2f a month is $%.2f a year.", salary,salary * 12.0); /* 3 */        
     return 0; 
}

作者说:

  

实际行为可能不同。例如,XCode 4.6将\ a,\ b和\ r \ n字符显示为颠倒的问号!

他们显示Xcode不支持\b Apple Apple Support Communities也显示了这种情况。

在我的Xcode 5.0中,它具有相同的情况。 enter image description here