printf即print format(格式化输出)
包含在stdio.h头文件中
printf("字符串。");
printf("%d" , a);
其中%d为占位符,%d是一个整形数字的占位符。
a是一个变量,在这里应为一个整型变量。
常用的一些占位符:
printf("%5d",50);
运行结果为“ 50”
在占位符的%后加上数字,可以限定打印的最小宽度,如果打印的字符小于这个最先宽度,就会在前面补上空格,也可以在%后面加上-m使补位空格在字符后面。
注意:若字符长度大于限定的最小宽度,限定不会生效,不会删除字符。
printf("%.5lf",2.5545455);
运行结果为:2.55455(四舍五入)
printf("%5.2lf",3.444);
运行结果为“ 3.44”
注意:混合使用时小数点也算一个字符
printf("%*.*lf", 5, 2, 3.145);
运行结果为“ 3.15”
scanf() 函数⽤于读取用户的键盘输⼊。
程序运行到这个语句时,会停下来,等待用户从键盘输⼊。
用户输入数据、按下回车键后, scanf() 就会处理用户的输⼊,将其存入变量。
它的原型定义在头文件 stdio.h 。
scanf() 的语法跟 printf() 类似。
注意:如果你是用的是vs编译器,使用scanf时会报错
可以参考这篇文章解决:https://cloud.tencent.com/developer/article/2453111
scanf("%d", &a);
&为取地址操作符,scanf操作符需要传入需要修改的变量的地址。
scanf("%d%d%f%f", &i, &j, &x, &y);
按照这一逻辑,可以有下面的题目:
#include <stdio.h>
int main()
{
int x;
float y;
// ⽤⼾输⼊ " -13.45e12# 0"
scanf("%d", &x);
printf("%d\n", x);
scanf("%f", &y);
printf("%f\n", y);
return 0;
}
请思考这个输出的结果。
scanf("%5s", &a);
输入123456,a中为"12345".
解决这个问题,可以在%c前加上一个空格解决
scanf("%d%*c%d%*c%d", & year, &month, &day);
上面示例中,%c 就是在占位符的百分号后面,加入了赋值忽略符,表示这个占位符没有对应的变量,解读后不必返回。