一、printf的使用:
int printf(const char *format, ...);
//参数:format ---- 字符串常量,表示输出的格式
//参数: ... ------ 变参,表示要输出的数据,数据的个数和类型都不固定
例如:
int main(void)
{
int a;
float b;
double c;
a = 120;
b = 43.21;
c = 43.21;
printf("%d\n",a);
printf("%f\n",c);
printf("%d,%f\n",a,b);
printf("a = %d,b = %f\n",a,b);
printf("%d\n",120);
printf("%d,%f\n",120,34.56);
printf("%d\n",a+100);
printf("%d%%\n",120);
return 0;
}
转换说明符的含义 :
%d 有符号十进制整数
%o 无符号八进制整数
%u 无符号十进制整数
%x 无符号十六进制整数
%c 一个字符
%s 字符串
%f 十进制计数法的浮点数
%e E-计数法的浮点数
%p 指针
在使用printf时需要注意以下几个问题:
1》转换说明符和变参的个数要相同
2》转换说明符和变参的类型要一致
3》输出的变参可以是常量,变量,表达式等
4》输出float数据和double数据时,都用%f
5》输出%时,需要用%%
//printf的修饰符
例如:
#include <stdio.h>
int main(void)
{
int a = 123;
float b = 12.34;
printf("%7d\n",a); //7-表示输出的数据最小的字段宽度为7
printf("%07d\n",a); //0-表示如果实际宽度不够7则在左边用0填充
printf("%-7d\n",a); //负号-表示左对齐
printf("%.2f\n",b); //.2 - 表示保留小数后2位
printf("%10.2f\n",b); //.2 - 表示保留小数后2位
printf("%d\n",-129);
printf("%+d\n",+120); //+ -在数据前显示+号
char c = 'A';
short s = 10;
long l = 100;
long long ll = 10000;
printf("%c\n",c);
printf("%hhd\n",c); // %hhd ---输出char型整数
printf("%hd\n",s); // %hd --- 输出short型整数
printf("%ld\n",l); // %ld --- 输出long型整数
printf("%lld\n",ll);// %lld --- 输出long long型整数
return 0;
}
2、scanf的使用:
int scanf(const char *format, ...);
//参数:format ---- 字符串常量,表示输入的格式
//参数: ... ------ 变参,表示要输入的数据保存的数据地址,数据的个数和类型都不固定
例如:
int main(void)
{
int a;
float b;
double c;
char ch;
/*
//scanf("%d",&a); //&a --表示变量a的地址
scanf("%d%f%lf",&a,&b,&c);
//scanf("a=%d,b=%f",&a,&b); //不推荐使用
*/
scanf("%d%c%f",&a,&ch,&b);
printf("a = %d,b = %.2f,ch = %c\n",a,b,ch);
return 0;
}
当使用scanf时,需要注意以下几点:
1》转换说明符和变参的个数要相同
2》转换说明符和变参的类型要一致
3》输入的变参必须是变量的地址,或者内存空间的地址
4》输入float数据,则用%f,如果输入为double数据,则用%lf
5》如果输入多个数据时,数据之间需要用空白符隔开(空白符:空格,换行,tab)
6》如果输入数据中有字符,则字符和前面的数据之间不能用空白符隔开,必须紧挨着输入
//scanf的返回值
int main(void)
{
int a;
float b;
int ret;
printf("请输入a和b:");
ret = scanf("%d%f",&a,&b);
printf("ret = %d\n",ret);
printf("a = %d,b = %.2f\n",a,b);
return 0;
}
//运行结果:
1.获取两个输入
请输入a和b:120 3.4
ret = 2
a = 120.b = 3.40
2.获取1个输入:
请输入a和b:120 r
ret = 1
a = 120.b = 0.00
3.获取0个输入:
请输入a和b:r 2.4
ret = 0
a = 21849.b = -0.00