请问这个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是退两格,按程序应该输出按要求的图形,但是实际的输出是下面的图形,百思不得其解!求教各位高手! 展开
上面的图是按编程要求的输出,
下面的图是运行程序后的实际输出,请问各位高手,为什么得不到按要求的输出呢?\t\b是空8个空格后再后退一格,\b\b是退两格,按程序应该输出按要求的图形,但是实际的输出是下面的图形,百思不得其解!求教各位高手! 展开
1个回答
展开全部
这办法很多,提供之一:
#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;
}
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询