0
点赞
收藏
分享

微信扫一扫

C/C++格式化输入输出(基础)

资料来源:​​13.1-1 格式化输入输出_哔哩哔哩_bilibili​​

正文

一般来说,printf()和scanf()函数在使用时,不需要考虑什么东西,但有时候需要我们以某种方式来输入输出,或者在做题的时候会遇到这种问题。

格式化输出:%[flags][width][.prec][hlL]type

下面对上面参数进行解释(常见):

flag

解释

+

强制输出加号

输出+或-

-

左对齐

space()

用空格填充

0(数字0)

用0填充

width与.prec

解释

number

数字(姑且这样看)

.number

小数点后number

*

用来替换一个数

.*

替换小数点后一个数

例子:

printf("************\n");//12个*

这里打印了12个*,主要是让下面的例子看的清楚

#include<stdio.h>
int main()
{
printf("************\n");//12个*
printf("%d\n",123); // 正常打印123 %type
printf("%+d\n",123);
printf("%+d\n",-123);
return 0;
}

/*
************
123
+123
-123
*/

直接%d,就是没有格式的输出;若是%+d,只是在输出前多一个+;如果输出的是一个负数,就算加了+,也没有什么变化。


#include<stdio.h>
int main()
{
printf("************\n");//12个*
printf("%9d\n",123);
printf("% 9d\n",123);
printf("%09d\n",123);
return 0;
}
/*
************
123
123
000000123
*/

%9d和% 9d作用一样,所以一般看不到% 9d,都是用%9d,表示一共9位,不足用space填充。于此相同的是%09d,用0填充不足的位置。


#include<stdio.h>
int main()
{
printf("************\n");//12个*
printf("%9d\n",123);
printf("%-9d\n",123)
printf("%-9d",123);
printf("%d",123);
return 0;
}
/*
************
123
123
123 123
*/

与%9d不同的是,%-9d是左对齐。整数表示一共要占多少位,通常在打印浮点数时,与下面的小数用在一起。


#include<stdio.h>
int main()
{
printf("************\n");//12个*
printf("%9.2f\n",12.3);
printf("%-9.2f\n",12.3);
return 0;
}
/*
************
12.30
12.30
*/

"%9.2f\n",9.2表示的意思是一共占9位,小数点后面2位,不足前面补空格。

-9.2左靠齐


#include<stdio.h>
int main()
{
int len = 6;
int _len = 9;
printf("************\n");//12个*
printf("%*d\n",len,123);
printf("%*.*f\n",_len,len,12.3);
return 0;
}
/*
************
123
12.300000
*/

*所表达是意思也很简单,就是和上面一样,不过是控制的方式变了。

至于[hlL],是对type的修饰

hlL


hh

单字节

h

short

l

long

ll

long long

L

long double

printf("%hhd\n",1234);
//输出-46

像这个,hh表示输出一个单字节的变量,但一个8位能表示的最大整数为01111111,即127,而1234明显超过127。所以会对1234进行处理,十进制1234在计算机中的二进制为(010011010010),取后8位,(1101 0010),-1->(1101 0001),取反->(1010 1110) = -46.

type就是类型了,不过多介绍。

格式输入:%[flags]type

至于格式输入,就很少的东西了。

#include<stdio.h>
int main()
{
int a, b;
scanf("%2d%d", &a,&b);
printf("%d %d", a, b);
}

//输入12345
//输出12 345

控制输入,只取两个数给a,其余的给下一个数。

至于其他的,这里就不介绍了。

举报

相关推荐

0 条评论