如何使用 b 删除换行符

How to delete a newline using 

本文关键字:换行符 删除 何使用      更新时间:2023-10-16

我希望以下代码的输出为

-|-

2-|-

(当我输入键的值为 2 时)。我知道\b只是将光标向后移动1个空格,但是为什么在使用换行符输入键的值后它无法向后移动一个空格。是否可以在使用换行符后使用转义字符 \b。

#include<stdio.h>
#include<conio.h>
int main()
{
    int key;
    printf("Enter value of key: )"
    printf("-|-");
    scanf("%d",&key);
    printf("b-|-");
    return 0;
}

这是一个简单的解决方案:

#include<stdio.h>
int main()
{
   int key;
   char output[8] = {''};
   printf("Enter value of key: )";
   scanf("%d",&key);
   sprintf(output,"-|-%d-|-",key);
   printf("%srn",output);
   return 0;
}

您用作输出设备的终端没有任何文本行的概念:它所知道的只是一个单元格网格,每个单元格都可以由一个字符填充。其中一个单元格位置是当前单元格。

终端将 BS 字符解释为将当前单元格向左移动一列的指令。但是,如果您已经在第一列中会发生什么?终端不知道上一行的终点,所以它无法回到行的末尾。它可以返回到上面行的最后一列,并且某些终端可能可以配置为这样做,但这不太可能是您想要的。

这过于简化,但这基本上是b不会删除换行符的原因。

这是实现相同结果的更简单方法:

#include<stdio.h>

int main()
{
   int key;
   char buffer[whatever_size];
   printf("Enter value of key: ");
   scanf("%d",&key);
   sprintf(buffer,"-|-%d-|-",key);
   printf("%sn",buffer);
   return 0;
}