关于C语言中\b的用法
答案:2 悬赏:0
解决时间 2021-01-06 08:43
- 提问者网友:
- 2021-01-05 12:57
关于C语言中\b的用法
最佳答案
- 二级知识专家网友:风格不统一
- 2021-01-05 14:19
\b是退格的意思,但它的实际用法与键盘上的回删键是不太一样的
C语言中的\b,是光标向前移动一个字符的意思
所以你的输出开始都没问题,到了\b那里,因为前面正好是一个\t制表符,所以退格就退了一个制表符的位置,到了本行的开头了,然后输出了一个7,把本行的第一个空格覆盖了,此时程序结束,默认会输出“Press any key to continue”,这一行字符会把后面的5,空格,6等都覆盖掉了
如果你在输出结尾加上一个\n,“Press any key to continue”就会跑到下面一行,5,空格,6等就不会被覆盖,只是7跑到了前面去了,占了第一个空格的位置
回答满意的话,望采纳追问\t\b退了一个制表符的位置为什么是到了本行开头,不是应该是第二个%d也就是6的后面吗追答因为一个\t是占4个字符位置,所以\b回退一个\t,就是回退了4个字符位置
回退时,\t当作一个字符位,然后还要再往前退3位
满意望采纳哦追问我明白你的意思,但是为什么printf("123456789\t\b1");的输出结果是1234567891Press any key to continue追答因为前面加了\n与不加\n的结果是不一样的
如果不加\n的话,都是一个字符位,比较容易理解
前面加\n的话,与\t合起来用,就是回退制表位(4位)了追问我在VC6.0上制表位应该是8位,然后为什么下面这段源代码的输出结果是图片那样?
#include
void main()
{
C语言中的\b,是光标向前移动一个字符的意思
所以你的输出开始都没问题,到了\b那里,因为前面正好是一个\t制表符,所以退格就退了一个制表符的位置,到了本行的开头了,然后输出了一个7,把本行的第一个空格覆盖了,此时程序结束,默认会输出“Press any key to continue”,这一行字符会把后面的5,空格,6等都覆盖掉了
如果你在输出结尾加上一个\n,“Press any key to continue”就会跑到下面一行,5,空格,6等就不会被覆盖,只是7跑到了前面去了,占了第一个空格的位置
回答满意的话,望采纳追问\t\b退了一个制表符的位置为什么是到了本行开头,不是应该是第二个%d也就是6的后面吗追答因为一个\t是占4个字符位置,所以\b回退一个\t,就是回退了4个字符位置
回退时,\t当作一个字符位,然后还要再往前退3位
满意望采纳哦追问我明白你的意思,但是为什么printf("123456789\t\b1");的输出结果是1234567891Press any key to continue追答因为前面加了\n与不加\n的结果是不一样的
如果不加\n的话,都是一个字符位,比较容易理解
前面加\n的话,与\t合起来用,就是回退制表位(4位)了追问我在VC6.0上制表位应该是8位,然后为什么下面这段源代码的输出结果是图片那样?
#include
void main()
{
printf("
12345678 1");
printf("
");}
它好像只退了4格,也就是制表符8格的一半,但是最开始我问你的那个一共退了8格。
全部回答
- 1楼网友:神的生死簿
- 2021-01-05 14:59
结果并不是7,看图
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯