05.黑马程序员-scanf函数、printf函数

本文详细介绍了C语言中常用的输入输出函数scanf和printf的使用方法,包括基本语法、参数解释及常见应用场景,如多数据输入输出等。

一、     scanf函数

1.     简介

这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量


函数原型:

 
int scanf(constchar*format,...);
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF
函数 scanf() 是从 标准输入流stdin (标准输入设备,一般是键盘)中读内容的通用 子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
其调用形式为: scanf("<格式说明字符串>",<变量地址>);
变量地址要求有效,并且与格式说明的次序一致。

2.     简单用法

int age;

scanf("%d", &age);

l   scanf函数时,会等待用户的键盘输入,并不会往后执行代码。scanf的第1个参数是"%d",说明要求用户以10进制的形式输入一个整数。这里要注意,scanf的第2个参数传递的不是age变量而是age变量的地址&age&C语言中的一个地址运算符可以用来获取变量的地址

l   输入完毕后,敲一下回车键,目的是告诉scanf函数我们已经输入完毕了,scanf函数会将输入的值赋值给age变量

 

3.     其他用法

1>    用scanf函数接收3个数值,每个数值之间用中划线-隔开

scanf("%d-%d-%d",&a, &b, &c);

3个%d之间是用中划线-隔开的,因此我们在每输入一个整数后都必须加个中划线-,比如这样输入,不然在给变量赋值的时候会出问题

l   注意:数值之间的分隔符是任意的,不一定要用中划线-,可以是逗号、空格、星号*、井号#等等,甚至是英文字母

// 逗号,

scanf("%d,%d,%d",&a, &b, &c); // 输入格式:10,14,20 

// 井号#

scanf("%d#%d#%d",&a, &b, &c); // 输入格式:10#14#20 

// 字母x

scanf("%dx%dx%d",&a, &b, &c); // 输入格式:10x14x20

 

2>    用scanf函数接收3个数值,每个数值之间用空格隔开

scanf("%d %d%d", &a, &b, &c);

3个%d之间是用空格隔开的,我们在每输入一个整数后必须输入一个分隔符,分隔符可以是空格tab回车

 

4.     注意

scanf的第一个参数中不要包含\n,比如scanf(“%d\n”,&a); 这将导致scanf函数无法结束



二、printf的简单使用

1.简介

 这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>。

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。

函数的原型为:int printf(const char *format, ...);
函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>);

其中格式化 字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,
用来确定输出内容格式。
参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出 参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想 不到的错误。
注意:函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的。


2.printf支持的格式符

除开%d,printf还支持很多格式符,如下表所示(红色表示常用)


3.printf可以同时输出多个数值

看下面代码,利用printf同时输出多个数值

复制代码
 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int age = 17;
 6     
 7     int no = 10;
 8     
 9     printf("age = %d, no = %d\n", age, no);
10     
11     return 0;
12 }
复制代码

注意看第9行,左边的双引号内有2个%d,age的值会代替第一个%d进行输出,no的值会代替第二个%d进行输出,并且都是以十进制形式输出。输出结果:

 

4.printf也可以输出常量

复制代码
1 #include <stdio.h>
2 
3 int main()
4 {
5     
6     printf("输出的常量为%d\n", 11);
7     
8     return 0;
9 }
复制代码

注意第6行,右边的是一个整型常量11,它会代替%d的位置进行输出。输出结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值