请问这个VC++6.0程序的运行结果为什么是这样?

#include"stdio.h"voidmain(){printf("\t*\n");printf("\t\b***\n");printf("\t\b\b*****\n... #include"stdio.h"void main(){printf("\t*\n");printf("\t\b***\n");printf("\t\b\b*****\n");}按要求输出结果是: * *** *****但实际输出是: * *** *****为什么?程序怎样修改才能得到所要求的结果?
上面的图是按编程要求的输出,
下面的图是运行程序后的实际输出,请问各位高手,为什么得不到按要求的输出呢?\t\b是空8个空格后再后退一格,\b\b是退两格,按程序应该输出按要求的图形,但是实际的输出是下面的图形,百思不得其解!求教各位高手!
展开
 我来答
White_MouseYBZ
2016-03-08 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6693万
展开全部

这办法很多,提供之一:

#include "stdio.h"
int main(void){
    printf("%10c\n",'*');
    printf("%9c**\n",'*');
    printf("%8c****\n",'*');
    return 0;
}

 之二:

#include "stdio.h"
int main(void){
    printf("%10s\n","*");
    printf("%11s\n","***");
    printf("%12s\n","*****");
    return 0;
}

……

更多追问追答
追问
但是按要求不能改变程序,只能用转义字符\t和\b来编程,是不是与WINNT的内核有关?我的系统是WIN7.
追答

这与内核无关。但只用\t和\b就不好控制了,因为\t是可以定义长短的,般默认的是8;而且\b跟在\t后面的话,一个\b就把一个\t全退回去了……下面代码可以,得在\t和\b之间留一个空格,似乎牵强了些:

#include "stdio.h"
int main(void){
    printf("\t\t \b*\n");
    printf("\t\t \b\b***\n");
    printf("\t\t \b\b\b*****\n");
    return 0;
}
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式