3
#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,这可能是问题吗?

4

2 回答 2

4

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

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

于 2013-03-28T17:19:40.083 回答
1

书中有一个例子[C Primer Plus]第6页.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 字符显示为倒置的问号!

他们显示 Xcode 不支持\b ,Apple Apple 支持社区也显示了这种情况。

在我的 Xcode 5.0 中,它也有同样的情况。 在此处输入图像描述

于 2014-01-02T08:05:18.467 回答