2级-printf输出和scanf输入

前情回顾:在1级的时候,我们学习了变量的定义及使用,还深入了解计算机是如何存数的......


概念

printf和scanf是什么?

占位符

整数占位符

浮点数占位符

字符和字符串占位符

格式化占位符

宽度

精度

 输入和输出函数

printf()函数 

 1.printf(“字符串”);

2.printf("输出占位符",输出参数); 

3.printf("输出占位符1 输出占位符2...",输出参数1,输出参数2...); 

scanf()函数

1.scanf("占位符",&变量);

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的值。


        在该系列中,文章的前部分采用简短的白话文讲解用法,而后部分采用更深入的角度讲解原理。思考是人类的结晶~如果你觉得有用,给我个点赞、收藏+关注哦~持续更新 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值