首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条件退格键。我想在printf中使用条件退格键。

条件退格键。我想在printf中使用条件退格键。
EN

Stack Overflow用户
提问于 2014-12-11 02:36:35
回答 1查看 100关注 0票数 0

在一个程序中,如果一个条件为真,我想要删除一个单词。有没有办法做到这一点。我正在考虑使用转义序列。

代码语言:javascript
复制
/* program to print number into words.  */ 

# include <stdio.h>
void main()
{
    char *single_numbers[10]={" ","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
    char *tens_numbers[9]={"Twenty","Thirty","Fourty","Fifty","Sixty","Seventy","Eighty","Ninety"};
    char *teens[9]={"Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
    int number,thousands,hundreds,tens,units,temp;
    printf("enter the number");
    scanf("%d",&number);
    if(number>9999)
    {
        printf("please enter a number between 0-9999");
    }else
    {
        thousands=number/1000;
        hundreds=(number%1000)/100;
        temp=(number%100);
        tens=temp/10;
        units=number%10;
        if(temp>=20)
            printf("%s thousand %s hundred %s %s only",
                    single_numbers[thousands],
                    single_numbers[hundreds],
                    tens_numbers[tens-2],
                    single_numbers[units]);
        else
            printf("%s thousand %s hundred %s only ",
                    single_numbers[thousands],
                    single_numbers[hundreds],
                    teens[temp-11]);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-12-11 04:09:35

是的,可以使用退格符('\b')覆盖已经打印到屏幕上的内容,但这不是您通常使用的技术。

与其使用退格符覆盖已经打印的内容,不如修改代码,使其只打印所需的部分。这是一个很好的起点,但您需要对其进行修改,以涵盖1000、0和1001等情况。

代码语言:javascript
复制
    if (thousands > 0)
        printf("%s thousand ", single_numbers[thousands]);
    if (hundreds > 0)
        printf("%s hundred ", single_numbers[hundred]);
    if (temp >= 20)
        printf("%s %s only\n", tens_numbers[tens-2], single_numbers[units]);
    else
        printf("%s only\n", teens[temp-11]);

实现目标的另一种方法是使用sprintf()打印到缓冲区,并有选择地截断缓冲区以删除写入的字符。但是考虑到这是多么的低效--当您可以完全跳过打印步骤时,为什么要先打印然后擦除呢?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27408390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档