前情回顾:在1级的时候,我们学习了变量的定义及使用,还深入了解计算机是如何存数的......
3.printf("输出占位符1 输出占位符2...",输出参数1,输出参数2...);
2.scanf("占位符1 占位符2",&变量1,&变量2);
3. scanf("占位符1 非占位符 占位符2",&变量1,&变量2);
概念
printf和scanf是什么?
答:printf()函数和scanf()函数都是C语言的标准库函数,printf()负责将内容输出到控制台,而scanf()负责从控制台读取用户输入存储到变量中。如果想使用这两个函数,需要引入<stdio.h>这个头文件。
占位符
整数占位符
- %d:用于输出十进制有符号整数
- %ld:用于输出十进制有符号长整数
- %u:用于输出十进制无符号整数
- %o:用于输出八进制整数
- %x:用于输出无符号十六进制整数(小写)
- %X:用于输出无符号十六进制整数(大写)
程序:
#include <stdio.h>
int main()
{
int x = 14;
unsigned int y = 20;
printf("x十进制为%d\n",x);
printf("x八进制为%o\n",x);
printf("x十六进制为%x\n",x);
printf("无符号数y=%u\n",y);
return 0;
}
结果:
浮点数占位符
- %f:用于输出单精度浮点数
- %lf:用于输出双精度浮点数
程序:
#include <stdio.h>
int main()
{
float f1 = 6.125;
double d1 = 9.9988889;
printf("f1=%f\n",f1);
printf("d1=%lf\n",d1);
return 0;
}
结果:
字符和字符串占位符
- %c:用于输出单个字符
- %s:用于输出多个字符(字符串)
程序:
#include <stdio.h>
int main()
{
printf("单个字符:%c\n",'A');
printf("多个字符(字符串):%s\n","ABCD");
return 0;
}
结果:
格式化占位符
在使用占位符时,可以指定宽度和精度,以控制输出的格式。宽度用于指定最小字符数,精度用于控制小数点后的位数或字符串的最大长度。
宽度
可以在占位符中使用数字来指定最小宽度。例如,
%4d
表示输出的整数至少占4个字符。
#include <stdio.h>
int main() {
int num = 99;
printf("宽度为4:%4d\n", num);
printf("宽度为4且左对齐:%-4d\n", num);
return 0;
}
结果:
精度
浮点数,可以使用
.
后跟数字来指定小数点后的位数。例如,%.3f
表示输出的浮点数保留3位小数。字符串,可以使用
.
后跟数字来指定最大长度。例如,%.5s
表示输出的字符串最多5个字符。
#include <stdio.h>
int main() {
float pi = 0.12345;
char s[] = "Hello, World!";
printf("精度为3:%.3f\n", pi);
printf("字符串最多输出5个字符:%.5s\n", s);
return 0;
}
结果:
输入和输出函数
printf()函数
1.printf(“字符串”);
printf("Hello World");
2.printf("输出占位符",输出参数);
int x = 99;
printf("x=%d",x);
3.printf("输出占位符1 输出占位符2...",输出参数1,输出参数2...);
int x=1,y=2;
printf("x=%d,y=%d",x,y);
注意:输出占位符和输出参数的个数必须一一对应,并且顺序也要一一对应
scanf()函数
1.scanf("占位符",&变量);
int x;
scanf("%d",&x);
注意:因为默认接收到用户输入的内容为字符型,%d表示将接收内容转整型,&变量表示用哪个变量存
2.scanf("占位符1 占位符2",&变量1,&变量2);
#include <stdio.h>
int main() {
int x,y;
scanf("%d %d",&x,&y);
printf("x=%d,y=%d",x,y);
return 0;
}
结果:
注意:scanf("%d %d",&x,&y);由于两个%d占位符中间有一个空格相隔,所以输入完x的值后得敲空格,才能输入y的值。
3. scanf("占位符1 非占位符 占位符2",&变量1,&变量2);
#include <stdio.h>
int main() {
int x,y;
scanf("%dm%d",&x,&y);
printf("x=%d,y=%d",x,y);
return 0;
}
结果:
注意:由程序上,scanf("%dm%d",&x,&y);由于两个%d占位符中间有一个字符m,所以输入完x的值后得输入m,才能输入y的值。
在该系列中,文章的前部分采用简短的白话文讲解用法,而后部分采用更深入的角度讲解原理。思考是人类的结晶~如果你觉得有用,给我个点赞、收藏+关注哦~持续更新