一个小小的C语言问题,新手求助,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:32:52
输出效果:p=0xfffe口口,q=0xffff (口表示空格)
#include <stdio.h>
void main ()
{
int p=0xfffe,q=0xffff;
printf("%#x ,%#x",p,q);
}
这样的输入效果可以达到要求,但是请看下面这个例子
#include <stdio.h>
void main ()
{
int p=0xfffe,q=0xffff;
printf("%-8#x,%#x",p,q);
}
多了个额-8,规定了输入宽度,但是这样变量p的输出结果却是#x,而不是p=0xfffe口口
请问:规定输入宽度时不能与#一起用么?麻烦你们了,谢谢
①不是啊,-8的8是代表输入宽度,-是代表补空格的方向(正数是左边补空格,负数是右边补空格)
②在书上,#是这样解释的,对c,s,d,u类无影响;对0类,在输出时加前缀o,对x类,在输出时加前缀0x;,对e,f,g类当结果又小树时才给出小数点
而题目就要求了输出p=0xfffe口口,如果不带#,输出的则是p=fffe口口 没有0x

因为输出规定宽度,我也不怎么用,我还头一次见到#号,不好意思,我不发给你解释,但是如果你认为-8不可以用那你就把-8换成一个正数在测试一下,如果还是不行就证明不能规定宽度了