一般使用scanf()函数,用到的都是:“%d %f %s %c”(整型,浮点型,字符串,单个字符)
scanf()带返回值
下面是scanf()的声明
int scanf(const char *format, …)
scanf()函数返回一个int型,表示成功接收对象的个数
代码如下:
#include <stdio.h>
int main()
{ int a,b,c,;
c=scanf("%d%d",&a,&b);
printf("a=%d b=%d c=%d",a,b,c);
return 0;
}
运行结果:
scanf()中’%*'的运用
scanf("%d%%d",&a,&b);
在上面的情况下录入两个整数时,在输入的时候中间会有空格逗号啥的,但是当你中间用‘,’就不会被接受
‘*’符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。
下面以’%*c’为例:
#include <stdio.h>
int main()
{ char a,c;
scanf("%c%*c%c",&a,&c);
printf("%c %c",a,c);
}
运行结果:
printf()实现进制转换
代码:
#include <stdio.h>
int main()
{ int i;
scanf("%d",&i);
printf("八进制为:%o\n",i);
printf("十六进制为:%x\n",i);
printf("十六进制为:%X\n",i);
return 0;
}
运行样例:
printf()中’*'的运用
先看代码:
#include<stdio.h>
int main()
{
float a=1.2345;
int b=5,c=2;
printf("%*.2f\n",b,a);
printf("%*.*f\n",b,c,a);
printf("%*d",b,c);
return 0;
}
运行结果:
*在printf里可以代表一个泛整数,可以代表任何整数。它可以出现在位宽的位置,也可以出现在小数位数的位置。
但在printf的双引号外面,必须要有*对应的数值。
printf()的返回值
代码如下:
#include<stdio.h>
int main()
{
float a=1.2345;
int b;
b=printf("%5.2f\n",a);
printf("%d",b);
return 0;
}
运行结果:
printf的返回值为一个整数类型,是打印出来的字符个数,不是几个数字、几个字符。
上面的例子中(空格,1,.,2,3,\n)六个