如:%(占位符/格式字符)
printf(“a=%d”,a);
#include
/*
%d %c %s %f %x %p
*/
int main()
{
int a = 10;
char b = 'b';
float c = 6.23;
int d = 99; // 0x63
printf("十进制输出\n");
printf("a = %d\n\n",a);
printf("字符输出\n");
printf("b = %c\n\n",b);
printf("小数输出\n");
printf("c = %f\n\n",c);
printf("字符串输出\n");
printf("字符串为:%s \n\n","Helloworld\n");
printf("十六进制输出\n");
printf("d = 0x%x\n\n",d);
printf("地址进制输出\n");
printf("a的地址:%p\n\n",&a);
return 0 ;
}
scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。
例如,若a,b,c为整型变量,如果写成scanf(“%d%d%d”,a,b,c);是不对的。
应将“a,b,c”改为“&a,&.b,&c”。许多初学者常犯此错误。
scanf格式中有什么字符,输入的时候也要输入
仅仅在输入数值数据时,如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束。例如:输入a 空格 b 空格 c或者a 回车 b 回车 c 回车
#include
int main()
{
int data1,data2,data3;
/*
printf("请输入一个数: \n");
scanf("%d",&data1);
printf("输入完毕\n");
printf("你输入的数是:%d\n",data1);
printf("请输入三个数: \n");
scanf("%d%d%d",&data1,&data2,&data3);
printf("输入完毕\n");
printf("你输入的数是:%d %d %d\n",data1,data2,data3);
*/
printf("请输入三个数: \n");
scanf("data1=%d,data2=%d,data3=%d",&data1,&data2,&data3);
printf("输入完毕\n");
printf("你输入的数是:data1=%d data2=%d data3=%d\n",data1,data2,data3);
return 0;
}
#include
int main()
{
char a,b,c;
printf("这是单个字符输入的坑,不能加空格缩进等转义字符隔开\n\n");
printf("请输入三个字符\n");
scanf("%c%c%c",&a,&b,&c);
printf("输入完毕\n");
printf("输入的三个字符为:a=%c,b=%c,c=%c\n",a,b,c);
return 0;
}
因为不仅仅是单纯的输入数值数据,所以空格,Tab,回车(非法字符)等,不一定是认为数据结束
#include
int main()
{
int data_int;
char data_char;
float data_float;
printf("混合输入问题\n\n");
printf("请分别输入一个整数,一个字符,一个小数\n");
scanf("%d%c%f",&data_int,&data_char,&data_float);
printf("输入完毕\n");
printf("输入的三个为:data_int=%d,data_char=%c,data_float=%7.2f\n",data_int,data_char,data_float);
return 0;
}
----- 如有错误欢迎大家批评指正!!!