输入、输出函数的头文件是
整数数据控制符
数据类型 | 十进制 | 八进制 | 十六进制 |
int | %d | %o | %x |
long | %ld | %lo | %lx |
long long | %lld | %llo | %llo |
举例说明:
#include<>
int main()
{
int a=11;
printf("十进制输出:%d\n",a);
printf("八进制输出:%o\n",a);
printf("十六进制输出:%x\n",a);
return 0;
}
输出:
十进制输出:11
八进制输出:13
十六进制输出:b
实数数据控制符
函数 | 数据类型 | 控制符 | 说明 | ||||
scanf | float |
%f | 输入单精度浮点数 | ||||
double | %lf | 输入双精度浮点数 | |||||
printf | float | %f | 输出浮点数(默认保留6位小数) | ||||
double |
#include<>
int main()
{
float a;
double b;
scanf("%f %lf",&a,&b);
printf("a=%f\n",a);
printf("b=%f\n",b);
return 0;
}
举例输入
0.123 1.23456
输出
a=0.123000
b=1.234560
scanf输入
1.宽度限定——%m
%m格式可以指定输入域宽,输入数据域宽,按照宽度截取所需要的数据
#include<>
int main()
{
int a;
scanf("%2d",&a);
printf("a=%d",a);
return 0;
}
输入:
1234
输出 :
a=12
2.输入跳过某变量
scanf("%*c%d",&x);
在%后面,格式字符之间加入附加说明符“*”,表示跳过给输入。
#include<>
int main()
{
int a,b;
scanf("%d%*c%d",&a,&b);
printf("a=%d\n",a);
printf("b=%d\n",b);
return 0;
}
输入
12a34
输出
a=12
b=34
printf输出
1.格式化输出整数
- %d:按实际数据输出
- %md:m为指定输出数据的宽度。如果实际数据位数小于m,则左端补空格(%-md是右端补空格);若大于m,则按实际位数输出。
- %0md:m也是指定输出数据的宽度。同上,实际数据位数小于m时,左端补0;
#include<>
int main()
{
printf("1.%d\n",1234);
printf("2.%6d\n",1234);
printf("3.%-6d\n",1234);
printf("4.%2d\n",1234);
printf("5.%06d\n",1234);
return 0;
}
输出:
1.1234
2. 1234
3.1234
4.1234
5.001234
2.格式化输出实数
- %f:保留六位小数输出
- %.nf:输出n位小数
- %:输出宽度是m(m包括符号位和小数位),保留n位小数。若数值宽度小于m,则左端补空格。
#include<>
int main()
{
printf("%f\n",3.1415926);
printf("%.7f\n",3.1415926);
printf("%6.4f\n",3.1415926);
printf("%10.4f\n",3.1415926);
return 0;
}
输出:
3.141593
3.1415926
3.1416
3.1416
其他控制符说明
控制符 | 说明 |
%c | 输入输出一个字符 |
%s | 输入输出字符串 |
%u | 输出无符号整数(unsigned)。输出无符号整数时也可以用%d,这时是将无符号数转换为有符号数,但不建议使用这只是增加了CPU的工作量。 |