如何使用 b 删除换行符
How to delete a newline using
我希望以下代码的输出为
-|-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;
}
相关文章:
- 如何防止clang格式在流运算符调用之间添加换行符<<
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 在 Stream C++ 文本之前有一个额外的换行符
- 流:CSV 文件中的换行符
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- Clang-格式:在多行语句之后的换行符上打开大括号
- 在输出流中插入换行符
- 防止控制台在通道字符(在 c++ 中)中输入空格(即空格、制表符和换行符)
- QProcess::readAllStandardOutput() 和换行符
- 如果有换行符,clang 格式不会附加大括号
- 提取后返回换行符的C++istream.get()
- 如何在出现换行符之前将多个整数作为输入?
- 正则表达式 获取两个换行符之间的文本
- 从文本文件中读取数据并删除所有换行符空格,并在 C++ 控制台中显示
- 删除字符串数组中的换行符
- 如何删除 GtkTextBuffer 末尾的换行符
- QRegExp 删除换行符和多个空格
- 非常简单的C ++:在 fstream 中>>运算符在读取某些内容后是否删除换行符?
- 如何使用 b 删除换行符
- C++-如何删除打印到控制台的换行符