格式化输入输出

1 格式化输入

使用不同的占位符结构,进行各种需求的输入。对应的使用方式如下表所示:

%[flag]type
flag含义
*跳过
number输入最大字符数
hhchar
hshort
llong,double
lllong
Llong double

*号的作用是跳过该输入,例子如下:

#include<stdio.h>

void main(void)
{
    int num;
    scanf("%*d%d",&num);
    printf("%d",num);
}

输入如下所示:

123
456

输出如下所示:

456

即代码跳过了123,将456放进了num的内存中。

用数字来控制输入的字符数在字符串的输入输出章节已有介绍和引用,此处不再加以赘述。

hh的功能是以char的格式输入,其他的同理。

%[flag]type
type含义
dint
i整数,可以为十六进制或八进制
uunsigned int
o八进制
x十六进制
a,e,f,gfloat
cchar
s字符串
[...]所允许的字符
p指针

其中,%d与%i都可以实现整型变量的输入,但是%i更为灵活,可以根据实际情况输入十进制、八进制和十六进制。代码如下:

#include<stdio.h>

void main(void)
{
    int num0,num1,num2;
    scanf("%i",&num0);
    scanf("%i",&num1);
    scanf("%i",&num2);
    printf("num0 is %d\n",num0);
    printf("num1 is %d\n",num1);
    printf("num2 is %d\n",num2);
}

输入:

123
0x12
012

输出如下:

num0 is 123
num1 is 18
num2 is 10

2 格式化输出

使用不同的占位符结构,进行各种需求的输出。对应的使用方式如下表所示:

%[flag][width][.prec][hlL]type
flag含义
-左对齐
+在前面放+或-
(space)正整数留空
00填充

示例代码如下

#include<stdio.h>

void main(void)
{
    printf("%8d\n",12345);
    printf("%-8d\n",12345);
    printf("%+d\n",12345);
    printf("%+d\n",-12345);
    printf("% d\n",12345);
    printf("%d\n",12345);
    printf("%09d\n",12345);
}

输出结果如下:

   12345
12345   
+12345
-12345
 12345
12345
000012345
%[flag][width][.prec][hlL]type
width或prec含义
number最小字符数
*用参数定义字符数
.number小数点后的位数
.*用参数定义小数点后的位数

示例代码如下:

#include<stdio.h>

void main(void)
{
    int num0=10,num1=4;
    printf("%8.3f\n",45.25);
    printf("%*.*f\n",num0,num1,45.25);
}

输出如下:

  45.250
   45.2500
%[flag][width][.prec][hlL]type
类型修饰含义
hh一个字节
hshort
llong
lllong long
Llong double

hh的功能是以一个字节的形式来输出,其他的以此类推。

%[flag][width][.prec][hlL]type
type用于
i或dint
uunsigned int
o八进制
x十六进制
X字母大写的十六进制
f或Ffloat
e或E指数
g或Gfloat
a或A十六进制浮点
cchar
s字符串
p指针
n读入/写出的个数

其中%n是用来计算输出字符的个数的。

3 输入输出函数的返回值

标准输入函数的返回值为输入变量的个数,标准输出函数的返回值为输出字符的个数。例如:

#include<stdio.h>

void main(void)
{
    int num0=0,num1=0;
    int a=0,b=0;
    num0=scanf("%d%d",&a,&b);
    num1=printf("%d\n",a);
    printf("num0=%d,num1=%d",num0,num1);
}

输入:

1234
5678

输出为:

1234
num0=2,num1=5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值